지금 언리얼 엔진 공부하는데요
여기서 강사가 헤더파일을 최대한 적게 포함하는게 좋다고
#include "kldp.h"
kldp* kldp;
이런식으로 하지말고
class kldp* kldp;
이런식으로 하라는데 맞는 얘기에요?
이런식으로 개발하는거 처음보는거 같은데
제가 초보라서 처음보는거면 죄송합니다.
댓글 부탁드립니다.
헤더는 필요하면 넣는 겁니다. 애초에 필요한 헤더를 안 넣으면 오류가 나죠. 강사분의 말씀은 필요없는 헤더를 넣지 말아라로 보이네요..
헤더파일에는 class KlDP* kldp; 이렇게 선언하고 .cpp파일에 해당 클래스 담고 있는 헤더파일 인클루드하던, 저는 다 헤더파일에 때려박는데
오직 필요한 경우에만 include 하라는 말씀이겠지요.
kldp라는 이름이 어떤 클래스를 가리키기만 하면, 그게 구체적으로 어떤 클래스인지는 상관 없는 경우가 있습니다.kldp * 타입의 포인터를 정의하는 경우가 대표적이죠.
kldp
kldp *
이 경우, kldp 클래스의 정의 전체를 들고 들어올 필요 없이 그냥 그런 클래스가 있다는 선언만 하는 게 가능하고 그걸 전방 선언 (forward declaration)이라고 합니다.
class kldp;
include 대신 최대한 전방 선언을 활용할 경우 1. 컴파일러가 편해집니다 2. 읽는 사람도 편해집니다 3. 순환 참조(circular reference)의 위험성이 줄어듭니다.
반대로 귀하께서 기존에 하셨다는 대로 죄다 include로 때려 박으면 위 장점들을 각각 뒤집은 단점들을 지고 가게 됩니다.
하던 방식을 바꿔봐야겠네요
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
헤더는 필요하면 넣는 겁니다.
헤더는 필요하면 넣는 겁니다.
애초에 필요한 헤더를 안 넣으면 오류가 나죠.
강사분의 말씀은 필요없는 헤더를 넣지 말아라로 보이네요..
강사가 하는거 보니까
헤더파일에는 class KlDP* kldp; 이렇게 선언하고 .cpp파일에 해당 클래스 담고 있는 헤더파일 인클루드하던, 저는 다 헤더파일에 때려박는데
오직 필요한 경우에만 include 하라는
오직 필요한 경우에만 include 하라는 말씀이겠지요.
kldp
라는 이름이 어떤 클래스를 가리키기만 하면, 그게 구체적으로 어떤 클래스인지는 상관 없는 경우가 있습니다.kldp *
타입의 포인터를 정의하는 경우가 대표적이죠.이 경우,
kldp
클래스의 정의 전체를 들고 들어올 필요 없이 그냥 그런 클래스가 있다는 선언만 하는 게 가능하고그걸 전방 선언 (forward declaration)이라고 합니다.
include 대신 최대한 전방 선언을 활용할 경우
1. 컴파일러가 편해집니다
2. 읽는 사람도 편해집니다
3. 순환 참조(circular reference)의 위험성이 줄어듭니다.
반대로 귀하께서 기존에 하셨다는 대로 죄다 include로 때려 박으면 위 장점들을 각각 뒤집은 단점들을 지고 가게 됩니다.
좋은 댓글 감사드립니다.
하던 방식을 바꿔봐야겠네요
댓글 달기