0

ここで問題があります。クラス A と B の 2 つのクラスがあります。クラス A はクラス B を消費し、他のクラスにクラス B のインスタンスを作成させたくありません。クラス A だけがクラス B のインスタンスを作成するためのアクセス権を持っています。

同時に、B のシングルトン インスタンスは必要なく、クラス A 内でクラス B を定義したくありません。

どんな助けでも。

前もって感謝します。

-ハルシャ

4

1 に答える 1

0

私はあなたの問題を本当に理解していませんが、クラス 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 のコンストラクターをプライベートにして、フレンド クラスを使用することもできます。

于 2012-04-23T17:17:58.693 に答える