先看定义,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
嗯,看定义就很清晰了。
上代码
//Singleton.h
class Singleton
{
public:
static Singleton* GetInstance();
private:
Singleton() {}
static Singleton *singleton;
};
//Singleton.cpp
Singleton* Singleton::singleton = NULL;
Singleton* Singleton::GetInstance()
{
if(singleton == NULL)
singleton = new Singleton();
return singleton;
}
构造私有,单例对象保存为静态成员变量。