헤더에서 include를 남발하다 보면 서로가 서로를 include하는 순환참조가 발생할 수 있다.
classA.h에서는 #include classB
classB.h에서는 #include classA
이렇게 되면 컴파일 시 문제가 발생할 수 있다.
하지만 각 클래스 별로 서로의 데이터가 필요한 상황이 있는데,
이 때 순환참조를 방지하는 방법으로 '전방선언'을 활용할 수 있다.
쉽게 생각하면, 'ClassA.h에는 ClassB라는 클래스가 존재한다'만 알려주고,
실제로 ClassB 안의 데이터를 사용하는 ClassA.cpp에서 include를 해 주면 순환 참조를 막을 수 있는 것이다.
//ClassA.h
//클래스B 전방선언
class ClassB;
class ClassA
{
public:
ClassA();
~ClassA();
}
//ClassA.cpp
//실제로 ClassB를 활용하는 이곳에서만 include
#include "ClassB.h"
ClassA::ClassA()
{
}
ClassA::~ClassA()
{
}
'C++ TIPS' 카테고리의 다른 글
함수의 const (0) | 2022.04.18 |
---|---|
서식 지정자 - %[ ] 의 의미 (0) | 2022.04.15 |
비주얼 스튜디오 팁: 헤더에 선언한 클래스 cpp에서 정의 빠르게 만들기 (0) | 2022.04.07 |
#define을 활용하여 만드는 편리한 매크로들 (0) | 2022.04.07 |
비주얼 스튜디오 팁 모음 (0) | 2022.03.21 |