전방 선언

-> 외부 파일 어딘가에 해당 클래스가 존재한다고 알려주는 역할

 

다양한 파일들을 만들고 서로 엮는 과정에서 불필요한 파일의 정보까지 가져오는 상황이 발생한다.

이를 해결하기 위해서 전방 선언을 사용하는 것이 좋다.

 

include와 전방 선언의 차이점

 

include

-> 기존에 존재하는 정보를 확인할 수 있다.

 

전방 선언

-> 어딘가에 존재한다는 것을 알 수 있지만 상세한 정보는 알 수 없다.

 

전방 선언의 장점

#1. 파일의 크기가 작아진다.(컴파일 속도의 향상)

 

전방 선언 시 주의 사항

 

#1. 존재만 알려준다.

-> 프로그램에서 전방 선언한 것이 존재하는지 검사를 하지 않는다.

-> 오타가 발생할 경우 찾기 힘들다.

 

#2. 존재만 알기 때문에 객체를 만들 수 없다.

-> 단, 포인터형으로는 사용이 가능하다

 

#3. 객체의 멤버 함수를 사용하는 곳은 .cpp파일이다.

-> .cpp파일에서는 include를 해주어야 한다.

 

사용 예)

A.h      // A 헤더 파일

class B; // 전방 선언
class C; 

class A
{
private:
    B* m_B; // 전방 선언시에는 포인터 변수로만 선언이 가능하다.
    C* m_C;
}

B.h      // B 헤더 파일
class B
{
  코드 블럭;
}

C.h      // C 헤더 파일
class C
{
  코드 블럭;
}

A.cpp     // 소스 파일

#include "B.h" // .cpp 파일에는 전방 선언한 것을 인클루드
#inlcude "C.h" 

+ Recent posts