シングルトン テンプレートを使用して複数のオブジェクトを作成する方法があるという点で、シングルトン テンプレートは実際にはシングルトンではない可能性があると言われました。修理方法を尋ねたところ、無視されました。そのため、私のシングルトン テンプレート クラスは本当にシングルトンなのでしょうか?
#ifndef SINGLETON_H_
#define SINGLETON_H_
template <class T>
class Singleton
{
private:
static T* instance;
protected:
Singleton<T>( )
{
}
public:
static T* getInstancePtr( )
{
if ( instance == 0 )
instance = new T( );
return instance;
}
};
template <class T> T* Singleton<T>::instance = 0;
#endif
これは、次のようにシングルトンにしたいクラスに継承されます:-
class Console : public Singleton< Console >
{
};