Make Unreal REAL.
article thumbnail

어떤 파일에 아래와 같이 작성되어 있는 경우 컴파일러 입장에서는 ClassA에 몇 Byte를 할당해야 할지 모르기 때문에 에러가 발생한다.

 

class ClassA;

class ClassB
{
...
   ClassA a;
};

 

이런 경우 하는 수 없이 다음과 같이 ClassA의 헤더를 추가해야 하는데

 

#include "ClassA.h"

class ClassB
{
...
   ClassA a;
};

 

만약 ClassA의 헤더 안에서 ClassB의 헤더를 참조하고 있다면 헤더 꼬임 혹은 상호 참조가 발생해 문제가 생긴다.

 

#include "ClassB.h"

class ClassA
{
...
   ClassB b;
};

 

클래스 전방 선언을 사용하면 헤더 파일에서 같은 모듈에 있는 다른 헤더 파일을 참조하지 않아도 되므로 상호 참조를 방지할 수 있다.

  • 단, 항상 4바이트 혹은 8바이트의 크기임을 예측할 수 있는 포인터 형식에만 사용할 수 있다.

 

'C++ > 기타' 카테고리의 다른 글

콤마(,) 연산자  (0) 2023.03.20
람다 식에서 [this] 캡처  (0) 2023.03.15
override 키워드  (0) 2023.03.01
__cplusplus  (0) 2023.02.21
swap(), iter_swap(), swap_ranges()  (0) 2023.02.18
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그