2012-06-21 27 views
2

類類型的類成員就像我想要做這樣的事情,定義與後來的C++定義

class Object { 
public: 
World * Parent_World; //This here 
Object(World * Parent_World=NULL) : Parent_World(Parent_World) {} 
}; 

class World { 
public: 
Object * Objects = new Object[100]; 
} 

這並不是因爲秩序。 我不能只是簡單的早期定義的世界,因爲我想也有從世界獲得一流的對象

回答

3

使對象之前預先聲明:

class World; //Now you can use pointers and references to World 
class Object { 
public: 
World * Parent_World; //This here 
Object(World * Parent_World=NULL) : Parent_World(Parent_World) {} 
}; 

class World { 
public: 
Object * Objects = new Object[100]; 
} 

製作一個向前聲明給出了一個編譯器足夠信息處理指針和引用被聲明的類型

0

向前聲明你的類是這樣的:

class World; 

如果你只使用指向世界的指針,直到World類被定義爲止,這將起作用。

+1

只有在允許使用不完整類型的上下文中使用它,纔會更加精確。 –

1

安德魯的answer是正確的:您需要一個前向聲明。

但值得注意的是,當編譯器必須知道對象的大小時,不能使用前向聲明。這意味着您的World*會員將會工作,但World會員不會。