C++单例模式
来源:互联网 发布:抗日塔防java手游 编辑:程序博客网 时间:2024/06/07 12:31
class Singleton{ static std::auto_ptr m_pInstance; protected: //拒绝任何形式的手动创建 Singleton(){} public: ~Singleton(){} //返回单件实例 static Singleton* Instance(){ if(!m_pInstance.get()){m_pInstance = std::auto_ptr(new Singleton()); } return m_pInstance.get(); } };//以上是一个完整的单例实现,然而这个实现不是线程安全的,在多线程环境下,需要使用线程互斥获取单件实例,一个优雅的方法见《double-check》 //需要多个单件子类,可做下面的宏定义#define DEFINE_SINGLETON(cls)\ private:\ static std::auto_ptr m_pInstance;\ protected:\ cls(){}\ public:\ ~cls(){}\ static cls* Instance(){\ if(!m_pInstance.get()){\ m_pInstance = std::auto_ptr(new cls());\ }\ return m_pInstance.get();\ }#define IMPLEMENT_SINGLETON(cls) \ std::auto_ptr cls::m_pInstance(NULL); //这样实现一个单例类如下: //.h文件class Single {DEFINE_SINGLETON(Single);public://your interfaces here...};//.cpp文件IMPLEMENT_SINGLETON(Single); //使用: Single* pSingle = Single::Instance();
- C#单例模式
- C#-单例模式
- 单例模式(C++)
- 【C++】单例模式
- [C++]单例模式
- 单例模式(C++)
- C ++的单例模式
- 【C++】Chapter17:单例模式
- Object-c单例模式
- Objectove-c单例模式
- Objective C--单例模式
- Objective C--单例模式
- Objective C 单例模式
- Objective C--单例模式
- 单例模式(C#)
- 单例模式(C#)
- object-c 单例模式
- c++-单例模式Singleton
- ibm ds5020 for aix storage manager
- 关于网站建设设计方案
- spring mvc学习(二,该死的spring tool suite 的编码)
- STM32的时钟系统分析
- Java异常机制及异常处理分析
- C++单例模式
- RailsCasts中文版,#10 Refactoring User Name Part 1 重构实战1
- 建造者模式(Builder Pattern)----设计模式
- java 归并排序
- ntsd生成dump文件
- HOJ 2934 Simple Math Question
- aix lv条带化
- try catch捕获异常
- mplayer: error while loading shared libraries: libartsc.so.0: cannot open shared object file: No suc