本人功力尚浅,未涉及线程安全。就C++单例模式设计进行剖析。会随着学习的深入不断加深对本问题认识。
- 含义:保证程序系统中只有一个对象实例且很容易被访问到
- 实现:
- 将构造函数设置为私有的。保证全局唯一实例,即在类外不能创建对象。
- 静态成员函数:
Singleton::GetInstance->
整体充当对象实例去访问其他成员函数。- 静态成员变量:
静态成员函数没有this指针,故不能访问非静态的成员变量。
class Singleton
{
public:
static Singleton *GetInstance()
{
if (NULL == _sInstance)
{
_sInstance = new Singleton();
}
return _sInstance;
}
private:
Singleton()
{}
static Singleton *_sInstance;
};
Singleton* Singleton::_sInstance = NULL;
- 静态成员变量: