对单例模板的一个问题
网上学习了单例模板,做法是声明一个模板类作为基类,其它的需要成为单例的类继承这个基类。举例如下:
//基类
template<class T>
class Singleton //单例模板
{
public:
static T* GetInstance()
{
static T instance;
return &instance;
}
protected:
Singleton(){}
};
//派生类
class A : public Singleton<A>
{
public:
A(){}
}
但是这样有一个问题,就是类A的构造函数必须是public的,这样不就不符合单例模式了吗?
特来请教各位高手。
[解决办法]
可以
private:
A(){}
friend Singleton<A>;
[解决办法]