ここで問題があります。クラス A と B の 2 つのクラスがあります。クラス A はクラス B を消費し、他のクラスにクラス B のインスタンスを作成させたくありません。クラス A だけがクラス B のインスタンスを作成するためのアクセス権を持っています。
同時に、B のシングルトン インスタンスは必要なく、クラス A 内でクラス B を定義したくありません。
どんな助けでも。
前もって感謝します。
-ハルシャ
私はあなたの問題を本当に理解していませんが、クラス A と同じ .cpp ファイルでクラス B を定義するだけでよいので、他のクラスは定義を見ることさえできず、クラス B のインスタンスを作成できません。
a.hpp
class B;
class A {
B *b;
A();
...
};
a.cpp
#include <a.hpp>
class B
{
...
};
A::A()
{
b = new B();
}
A::~A()
{
delete B;
}
クラス B を別のファイルに入れたい場合は、それを b.cpp に入れて、このファイルを a.cpp に含めることができます。B のコンストラクターをプライベートにして、フレンド クラスを使用することもできます。