2010-07-11 5 views
1

문제를 설명 할 수 있는지 확실하지 않지만 최선을 다할 것입니다. 상황은 다음과 같습니다.원형 클래스 멤버 포인터입니까?

원하는 경우 class1에 다른 클래스 class2를 가리키는 멤버 변수로 포인터가 있습니다. 한편, class2는 class1을 가리키는 멤버 변수로 포인터를 가지고 싶다. 그게 가능하니?

class Class1 
{ 
private: 
    Class2* classptr; 
     ... ... 
public: 
     ... ... 
}; 

class Class2 
{ 
private: 
    Class1* classptr; 
     ... ... 
public: 
     ... ... 
}; 

Class1과 Class2 중 어느 것도 식별자로 인식되지 않은 것으로 보입니다. 나는 Class1과 Class2가 생성되지 않았다고 생각한다. 내가 틀렸다면 나를 바로 잡아라.

답변

7

전달 선언이 필요합니다. 다음 중 하나를

class Class1 
{ 
private: 
    class Class2* classptr; 
     ... ... 
public: 
     ... ... 
}; 

나 :

class Class2; 

class Class1 
{ 
private: 
    Class2* classptr; 
     ... ... 
public: 
     ... ... 
};