我對C++相對比較陌生,我正在嘗試編寫一個簡單的2D引擎。但是,目前的結構在其他語言(AS3等)中還是有問題的。我有兩個類,一個叫DisplayObject,另一個叫DisplayObjectContainer。 DisplayObjectContainer是DisplayObject的子類,但DisplayObject有一個指向DisplayObjectContainer父級的指針作爲屬性。我無法想出一種方法在他們的文件中正確包含對方。我無法在DisplayObject中轉發聲明DisplayObjectContainer,因爲我需要訪問DisplayObject中的DisplayObjectContainer方法。C++循環依賴關係
的DisplayObject:
class DisplayObject
{
public:
DisplayObjectContainer *parent;
...
...this->parent->globalTransform...
...
的DisplayObjectContainer:
class DisplayObjectContainer : public DisplayObject
{
public:
DisplayObjectContainer();
virtual ~DisplayObjectContainer();
protected:
private:
};
任何幫助,將不勝感激。謝謝!
首先,爲什麼父類知道一個特定的派生類?無論如何,你需要在包含'DisplayObject'的頭文件中使用一個前向聲明(它只包含一個未被解引用的DisplayObjectContainer *),並將include包含在源文件中(例如'DisplayObject.cpp ')爲'DisplayObject'。 –