クラスAをクラスBの友達にしようとしています。
class B;
class A{
public:
void show(const B&); // ##1## but this one works fine
B ob;// error incomplete type
};
class B{
public:
int b;
B():b(1){}
friend class A;
};
私の質問は、なぜそれが不完全なタイプなのですか? 私がやったとき、class B
それはコンパイルにコードのどこかに定義があることを伝える関数のプロトタイプのようなものだと思いました。
上記のコードの ##1## でも、なぜこれが可能なのでしょうか?