私には4つのクラスがあります。S1、S2、S3、S4と呼びましょう。これらのクラスはシングルトンです。それぞれにgetInstanceとfinalizeメソッド(およびインスタンスのプライベート変数)があります。
ここで、finalizeメソッドとgetInstanceメソッドの繰り返しを避けるために、次のようなSingletonMixinクラスを作成しようとしています。
template<class T> class SingletonMixin
{
public:
static T* getInstance();
private:
static T* instance;
};
ここでの問題は、シングルトンクラスをインスタンス化し、コンストラクターをプライベートに保つにはどうすればよいかということです。
編集
(説明)
つまり、どうすればそれを行うことができますか?
template<class T> T* SingletonMixin<T>::instance = 0;
template<class T> T* SingletonMixin<T>::getInstance()
{
if (instance == 0)
{
instance = T();
}
return instance;
};
しかし、プライベートTコンストラクトT()
ありがとう!