2012-04-23 6 views
0

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

そして同じ私はBのシングルトンインスタンスを望んでいませんし、クラスAの中でクラスBを定義したくありません。

何か助けてください。

ありがとうございます。

-Harsha

+1

これはC++ですか、それともJavaか他のオブジェクト指向言語ですか? –

答えて

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のコンストラクタをプライベートにして、friend classesを使用することもできます。

関連する問題