我有四个班级,我们称之为 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()
谢谢!