C++中的单例模式
来源:互联网 发布:手机游戏网络加速器 编辑:程序博客网 时间:2024/06/05 14:06
- class CSingleton
- {
- private:
- CSingleton()
- {
- }
- static CSingleton *m_pInstance;
- class CGarbo //它的唯一工作就是在析构函数中删除CSingleton的实例
- {
- public:
- ~CGarbo()
- {
- if(CSingleton::m_pInstance)
- delete CSingleton::m_pInstance;
- }
- };
- static CGarbo Garbo; //定义一个静态成员变量,程序结束时,系统会自动调用它的析构函数
- public:
- static CSingleton * GetInstance()
- {
- if(m_pInstance == NULL) //判断是否第一次调用
- m_pInstance = new CSingleton();
- return m_pInstance;
- }
- };
类CGarbo被定义为CSingleton的私有内嵌类,以防该类被在其他地方滥用。
程序运行结束时,系统会调用CSingleton的静态成员Garbo的析构函数,该析构函数会删除单例的唯一实例。
使用这种方法释放单例对象有以下特征:
在单例类内部定义专有的嵌套类;
在单例类内定义私有的专门用于释放的静态成员;
利用程序在结束时析构全局变量的特性,选择最终的释放时机;
使用单例的代码不需要任何操作,不必关心对象的释放。
程序运行结束时,系统会调用CSingleton的静态成员Garbo的析构函数,该析构函数会删除单例的唯一实例。
使用这种方法释放单例对象有以下特征:
在单例类内部定义专有的嵌套类;
在单例类内定义私有的专门用于释放的静态成员;
利用程序在结束时析构全局变量的特性,选择最终的释放时机;
使用单例的代码不需要任何操作,不必关心对象的释放。
0 0
- Objective-c中的单例设计模式
- Objective-C中的单例模式
- Objective-C中的单例模式
- Objective-C中的单例模式(singleton)
- Objective-C中的设计模式之单例模式
- C#单例模式
- C#-单例模式
- 单例模式(C++)
- 【C++】单例模式
- [C++]单例模式
- 单例模式(C++)
- C++中的单例模式 (Singleton in C++)
- Object-c 单例模式中的 allocWithZone作用
- Object-c 单例模式中的 allocWithZone作用
- Object-c 单例模式中的 allocWithZone作用
- php中的单例模式(单态)
- c++中的单例模式
- c#中的单例模式
- android bluedroid调试
- UVA 11054 - Wine trading in Gergovia
- Repo 下载路径
- Flume NG源码分析(三)使用Event接口表示数据流
- Qt开发ActiveX及环境搭建
- C++中的单例模式
- Windows Server2012 虚拟机复制及故障转移(Part4)
- Ubuntu系统如何安装双网卡及更改网卡名称(eth0改为eth1)
- 探访美国创客空间之TechShop:商业化的迷你工厂
- objective-c怎么将一个字符串分割成多个字符串
- Android Volley完全解析(一),初识Volley的基本用法
- 欢迎使用CSDN-markdown编辑器
- html 水平 垂直 居中简易实现
- proactor 与 actor 模式