重複の可能性:
C++ でのネストされた型/クラスの前方宣言
クラスの単純な相互参照の場合、クラス名を事前に宣言し、それを参照として使用することができます。このように、表現はポインターです。しかし、両方のネストされたクラスを相互参照したい場合 (以下の例を参照)、ネストされたクラスを事前宣言する方法がないように見えるため、問題が発生します。
私の質問は次のとおりです。私の例が機能するように、ネストされたクラスを事前宣言する方法はありますか?
そうでない場合:コードをあまり醜くしない一般的な回避策はありますか?
// Need to predeclare it to use it inside 'First'
class Second;
class Second::Nested; // Wrong
// Definition for my 'First' class
class First
{
public:
Second::Nested* sested; // I need to use the nested class of the 'Second' class.
// Therefore I need to predeclare the nested class.
class Nested { };
};
// Definition for my 'Second' class
class Second
{
public:
First::Nested* fested; // I need to use the nested class of the 'First' class.
// This is okay.
class Nested { };
};