标签:
一. 懒汉模式-线程不安全
class CSingleton { private: static CSingleton* pInstance; CSingleton()//构造函数私有化,封死外界使用new创建实例的可能 { } public: static CSingleton* getInstance()//实例化本类的唯一全局入口 { if(NULL == pInstance) { pInstance = new CSingleton(); } return pInstance; } };
问题1: 为什么单例模式的实例要设置为静态的?
从语义上讲,类的静态成员变量是所有对象共享的,而单例模式就是为了让该类所有实例共享同一个对象。
从语法上讲,常见的单例模式都是通过一个静态方法返回其单例,而静态方法的内部不能直接使用非静态变量。
问题2:为什么getInstance要设置成静态函数?
静态方法可以在实例化之前,就通过类名调用,此函数用于构造单利,会早于单利生成调用。
标签:
原文地址:http://www.cnblogs.com/shijianchuzhenzhi/p/5861008.html