首页 > 代码库 > 单例模式
单例模式
一. 懒汉模式-线程不安全
class CSingleton{ private: static CSingleton* pInstance; CSingleton()//构造函数私有化,封死外界使用new创建实例的可能 { } public: static CSingleton* getInstance()//实例化本类的唯一全局入口 { if(NULL == pInstance) { pInstance = new CSingleton(); } return pInstance; }};
问题1: 为什么单例模式的实例要设置为静态的?
从语义上讲,类的静态成员变量是所有对象共享的,而单例模式就是为了让该类所有实例共享同一个对象。
从语法上讲,常见的单例模式都是通过一个静态方法返回其单例,而静态方法的内部不能直接使用非静态变量。
问题2:为什么getInstance要设置成静态函数?
静态方法可以在实例化之前,就通过类名调用,此函数用于构造单利,会早于单利生成调用。
单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。