单例
来源:互联网 发布:mac搜索文件快捷键 编辑:程序博客网 时间:2024/04/30 15:05
一个单例类:
class Singleton { private: Singleton(); virtual ~Singleton(); static Singleton* instance; public: static Singleton* GetInstance();};Singleton* Singleton::instance=NULL;Singleton* Singleton::GetInstance() { if(instance == NULL) { instance = new Singleton(); } return instance; }1、构造方法私有 那么,就意味着,只能在Singleton的成员函数中,才能调用Singleton的构造函数来创建实例。在Singleton之外,不能创建Singleton对象的实例。2、代码中,定义了GetInstance方法,只能通过GetInstance方法来获取Singleton对象的实例,单例就是在GetInstance方法中控制的。首先,Singleton有一个static Singleton* instance;//惟一实例 Singleton* Singleton::instance=NULL;在这里初始化为NULL。Singleton* Singleton::GetInstance() { if(instance == NULL) { instance = new Singleton(); } return instance; } 上面的函数,就是通过instance来实现单例的。当第一次调用GetInstance时,instance 为NULL,所以会执行instance = new Singleton();把这个新建的实例保存到静态成员instance,并返回这个指针。第二次到第N次调用GetInstance时,由于instance不为空,所以会直接返回instance 。也就是第一次调用GetInstance创建的那个实例。所以这样就实现了,单实例。意思就是说,Singleton对象的实例,只会被创建一次,就是说内存中,只存在一个Singleton的实例,就是所谓,单实例。
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- iOS 静态库里的category中的类方法不能识别问题
- n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系和出场顺序,求最终排名
- ant中copy操作学习心得
- 第六次课后作业
- js删除数组中重复的条目并将新的数组返回
- 单例
- 成功六要素
- android有效获取状态栏(StatusBar)高度
- 你可能不知道的10个JavaScript小技巧
- 毕设进度
- 证书格式转化crt,pem,cer,
- 硕士研究生毕业答辩ppt攻略
- 那些相见恨晚的 JavaScript 技巧
- word 中无格式粘贴的设置方法(快捷键和按钮)