ネストされたクラスを定義してから、次のようなインスタンスを作成すると:
class A
{
class B
{
...
};
B b;
};
全て大丈夫。しかし、B を A の内部で宣言し、それを外部で定義するだけでは、B のインスタンスを作成できません。これはおそらく、コンパイラが B のインスタンスに必要なスペースを認識していないためです。しかし、別のクラス内でクラスを定義すると、コードはあまり読みにくくなります。これを機能させる方法はありますか?
class A
{
class B;
B b;
};
class A::B
{
...
};