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