|
Tbbb class 내에 Taaaa에 대한 정의가 있고, Taaaa class 내에 Tbbb의 정의가 존재합니다. 컴파일러는 Tbbb 클래스를 해석하다가 Taaa클래스를 만나면 다시 이를 해석하려고 하는데, 내부에 아직 해석되어지지 않은 Tbbb가 있으므로 해석할 수 없는 상황이 되는 것입니다.
아래 컴파일되도록 고친 것입니다. 이런 구조는 상당히 위험한 구조입니다. 이 class를 이용할 경우, 초기화를 잘못하면 여러가지 문제를 야기시킬 수 있는 형태입니다. 가능하면 이런 구조는 피하는 것이 좋습니다.
이놈은 Unit3.h라는 파일로 저장되어있슴다.
#include "Unit2.h"
//---------------------------------------------------------------------------
class Tbbb
{
private:
protected:
public:
class Taaaa * a; // 이부분 수정
};
이놈은 Unit2.h라는 파일로 저장되어있슴다.
#include "Unit3.h"
//---------------------------------------------------------------------------
class Taaaa
{
private:
protected:
class Tbbb * a; // 이부분 수정
public:
};
행인1 님이 쓰신 글 :
: 아주 간단한 문제인데 제가 헤메고 있다는 생각이 듭니다.
: Class를 아래와 같이 두개를 선언했습니다.
: 서로 클래스를 public에 선언했습니다. 그리고 컴파일을 하면 둘다 public에 선언한
: 상대 클래스의 포인터에서 "Type name Expected"라는 syntex에러를 냅니다. 도저히 이유를
: 알수가 없습니다. 도데체 무슨 이유인지.. 원래 이렇게 하면 되야하는것 아닌지요..
: 아예 프로젝트파일 통째로 올려봅니다. 해결책을 알려주시면 감사하겠습니다.
:
:
: 이놈은 Unit3.h라는 파일로 저장되어있슴다.
:
: #include "Unit2.h"
: //---------------------------------------------------------------------------
: class Tbbb
: {
: private:
:
: protected:
:
: public:
: Taaaa * a
:
: };
:
:
: 이놈은 Unit2.h라는 파일로 저장되어있슴다.
:
: #include "Unit3.h"
: //---------------------------------------------------------------------------
: class Taaaa
: {
: private:
:
: protected:
: Tbbb * a;
: public:
:
: };
|