'#ifndef'에 해당되는 글 1건

  1. 2015.01.18 교차포함 (circular dependency)를 줄일 수 있는 헤더 선언

다음과 같은 폼으로 헤더파일을 만들어 주면, #ifndef 전처리 문으로 인해

2번째 선언시에 _CLASS_ 상수가 정의 되어 있어서 중복선언을 막아준다. 

 

전방선언 하고 헤더를 소스파일 cpp에 넣어서 교차포함을 피하는 방법도

있기는 하지만,이것저것 오류가 나는 경우가 굉장히 많았다.

 

이 방법이 그냥 단순무식 하면서도 편하게 코딩 할 수 있는 방법인듯 하다.

 

// class 헤더의 선언

// "class.h"

 

 #ifndef _CLASS_

 

#define _CLASS_                   

#include "포함할 헤더파일"

[클래스 및 함수 선언]

 

#endif

    

 

 

 

 

 

 

 

 

 

 

 

 // class 소스파일

// "class.cpp"

 

#include "stdafx.h"

#include "class.h"

 

[클래스 및 함수 정의]

 

미리 컴파일 된 헤더파일을 사용하면 헤더에 헤더를 포함해 주지 않아도

stdafx.h에 선언된 클래스를 class.h에서 사용 할 수 있다.

 

단, 소스파일에서 stdafx.h를 반드시 추가시켜 줘야 미리 컴파일 된 헤더를 사용할 수 있다.

참고로 stdafx.h 이전에 포함 된 헤더파일은 모두 무시 되니, 이 점을 꼭 고려해야 한다.

 

Posted by 굿쟌
,