不用额外的内部变量创建单例类的写法。
一般写法:1
2
3
4
5
6
7static Singleton* instance()
{
if (m_instance == NULL)
m_instance = new Singleton();
return m_instance;
}
简写写法:1
2
3
4
5static Singleton *instance()
{
static Singleton *instance = new Singleton();
return instance;
}
或:1
2
3
4
5static Singleton &instance()
{
static Signaleton instance;
return instance;
}
利用static语法特性,被static关键词标识的变量只会初始化一次,且生命周期为全局的。