//singleton.h
class singleton{
private:
singleton();
singleton(const singleton&);
singleton & operator=(const singleton&)
static singleton* sing;
public:
static singleton * getInstance();
}
//singleton.cpp
singleton* singleton::sing = NULL;
singleton* singleton::getInstance()
{
if(NULL == sing)
sing = new singleton();
return sing;
}
单例模式的实现要点:
1、 首先要将类的构造函数、复制构造函数和重载的赋值操作符设置为私有方法private,这样禁止用户调用构造函数来创建对象,无法 使用new来实例化新对象。
2、通过声明一个公有的getinstance()方法来获得类的实例对象。在类的声明中,定义一个static的类对象指针,该对象只在初次调用这个函数时初始化,在以后就判断该实例对象是否为NULL,来确定是否已初始化。保证每次调用该函数都获得的是同一个实例对象。