c++에서 서로 다른 헤더가 잇는데..
글쓴이: aNsITAte / 작성시간: 금, 2005/08/12 - 1:00오전
a.h
#ifndef _A_
#define _A_
#include "b.h"
#include "c.h"
#include <...>
..
#endif
b.h
#ifndef _B_
#define _B_
#include "a.h"
#inlcude "c.h"
#include <...>
..
#endif
c.h
#ifndef _C_
#define _C_
#include <...>
..
#endif
d.h
#ifndef _D_
#define _D_
#include "a.h"
#inlcude "b.h"
#inlcude "c.h"
#include <...>
..
#endif
이렇게 헤더파일이 있을때 a, b에서 컴파일러가 a에서는 b에 있는 클래스를 b에서는 a에 있는 클래스를 찾지못한다고 에러를 내는데 -_-;;
이게 정상적인 건가요?
웃기게도 a, b두개의 헤더중에서 하나의 헤더에서 다른 것을 제외한 상태에서는 정상적인 컴파일이 됩니다.
그냥 같은 소스인데도 그 헤더를 추가만 하면 무조건 에러를 내는군요;
어떻게 해결은 안될까요?
Forums:
a.h[code:1]// #include "b.h"
a.h
b.h
이렇게 해보세요.
[code:1]// a.h#include "b.h"
이런 형태의 상호 참조는 불가능합니다. 전처리 후의 코드를 살펴보면 그 이유를
알 수 있을 겁니다. 적어도 한쪽은 kane님의 방법대로 전방 선언과 함께 포인터나
참조형을 써야 합니다.
댓글 달기