2014-04-17 3 views
0

그래서 클래스 A, B 및 C가 있습니다. 클래스 A는 부모 또는 기본 클래스이고 B와 C는이 클래스를 상속합니다. "클래스 정의되지 않은"오류가 발생합니다 클래스 A B 및 C 모두 헤더 파일에 포함되어 있기 때문에 믿습니다? 이것은 내 주요 코드에 있습니다.두 개의 서로 다른 클래스에 동일한 헤더 파일 포함

#include "BoundingSphere.h" 
#include "OrientedBoundingBox.h" 

그리고 이것은 단지 클래스 OBBModel과 같은 일이 될 것입니다 BoundingSphere.h

#include "Model.h" 
#include "Common\xnacollision.h" 

class BSModel : public Model 
{ 
}; 

OrientedBoundingBox.h의 단축 버전입니다. 그러면 오류가 발생하는 이유는 무엇입니까? Error 2 error C2504: 'Model' : base class undefined c:\users\X\desktop\project\boundingsphere.h 9 1 PhysicsDemo

'모델'재정의 오류도 발생합니다.

+3

예제에서 일관된 이름을 사용하십시오. 실제 이름이 있으면 A, B, C를 사용하지 마십시오. 그리고 "Model.h"를 ​​보여주십시오. –

+0

기본 클래스에 다음과 같은 행이 있습니까? #ifndef HEADERFILE_H #define HEADERFILE_H –

+1

.h 파일에'# ifndef' 가드가 있습니까? http://en.wikipedia.org/wiki/Include_guard – Alec

답변

3

을 프로젝트의 모든 헤더 파일 맨 위에 넣으면 이미 포함 된 후에 다시 포함되지 않도록하십시오.

#pragma once은 모든 최신 컴파일러에서 지원되지만 표준은 아닙니다. 표준 인 include guards을 사용할 수도 있습니다.

관련 문제