クラスAとBについて考えてみます。クラスAはクラスBと友好的です。クラスBにはプライベートコンストラクターがあります。クラスAはクラスBインスタンスを作成できますか、それともプライベートコンストラクターは、フレンドクラスであっても、クラスをインスタンス化できないことをコンパイラーに示しますか?
サンプルコードは次のとおりです。
class B;
class A {
void myFunction() {
B newBobject;
}
};
class B {
private:
B() {}
public:
int someData;
friend class A;
};
また、C++03を使用していることに注意してください。C ++ 03で無効な場合、C ++ 11で許可されますか?
副次的な質問として、シングルトンメソッドはどのように関連していますか?オブジェクトの唯一のインスタンスをインスタンス化することを具体的に扱っていますか、それとも他の何かですか?