私はC++の比較的新しいです、と私はシンプルな2Dエンジンを記述しようとしています。しかし、他の言語では問題ない現在の構造に問題があります(AS3など)。私は2つのクラス、1つはDisplayObjectと呼ばれ、もう1つは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 ')を使用します。 –