プロジェクトの場合、コンテナー クラスと要素を作成する必要があります。要素には、コンテナーに関する知識が必要です。また、コンテナー内のファクトリ メソッドによって作成を行う必要があります。これは、ヘッダーとcpp ファイルの場合、(私のように) ヘッダーを 1 つしか使用できない場合、私には不可能に思えます。問題の例を次に示します。
class myContainer;
class myElement;
class myContainer
{
public:
myElement *createElement()
{
myElement *me =new myElement(this);
// do some adding to list stuff
return me;
}
int askMyContainer()
{
return 42;
}
};
class myElement
{
public:
myElement(myContainer *parent)
{
pcontainer=parent;
}
int userAskingSomething()
{
return pcontainer->askMyContainer();
}
protected:
myContainer *pcontainer;
};
クラス myContainer には myElement に関する知識が必要です。そのため、myElement ハットは myContainer の前にある必要がありますが、myElement には myContainer に関する知識が必要です。