其意图是保证一个类仅有一个实例对象,并提供一个全局的访问点,该实例被所有的程序共享。
class CSingleton
{
public:
static CSingleton *Instance();
private:
CSingleton();
static CSingleton *m_pInstance;
};
CSingleton *CSingleton::Instance()
{
if (m_pInstance == NULL)
{
m_pInstance = new CSingleton();
}
return m_pInstance;
}
单例类的特征:
(1) 构造函数私有,这样就不能从别的地方创建该类的实例
(2) 有一个指向该类唯一实例的静态指针,并且私有
(3) 有一个获取该静态指针的公有静态函数,并且在必要的时候创建该类的唯一实例