2010-07-11 95 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: 
     ... ... 
};