JHB의 프로그래밍 삽질기

[MFC] class의 헤더에서 멤버 클래스 변수 포인터를 사용할 때 본문

PROGRAMMING/Win/MFC

[MFC] class의 헤더에서 멤버 클래스 변수 포인터를 사용할 때

roter 2010.12.06 10:21


보통 MFC에서 이제 view에 사용할 소스 파일의 h와 cpp가 있을 때
이제 해당 뷰에서 사용할 컨트롤 및 클래스들을 사용할 때에 include를 cpp 파일에다가 한다.
헤더 파일에 인클루드 했다가는 무진장 꼬여서 애먹는다 -.-;;
차라리 사용할 클래스들을 그때 그때 cpp에 include하는게 편하다.

그렇다면 멤버 변수로 외부 클래스를 선언 할려면 어떻게 해야하는가
class의 헤더에 외부 클래스의 h가 include 되어 있지 않기 때문에 그냥 선언해선 되지 않을 것이다

예를 들어 내가 class CMain에서 사용하고 싶은 클래스가 CExample 이라고 해보자.

//Main.h
class CMain{
public:
   CExample m_example;
};

//Main.cpp
#include "Example.h"
...
...

이렇게 하면 당연히 안된다.
그렇다고 헤더 파일에 #include "Example.h" 쓰자니 꼬여버린다.
이럴 땐 이렇게 한다.

//Main.h
class CExample;
class CMain{
public:
   CExample* m_pExample;
};

//Main.cpp
#include "Example.h"
...
...

저렇게 헤더 파일에 class 클래스이름을 명시해주면 class의 포인터가 사용 가능하다.
0 Comments
댓글쓰기 폼