C++中Singleton的实现
2005-12-17 17:38
267 查看
C++中Singleton的实现
这些东西在网上都很多了,但是我觉得他们的使用都不符合我的要求,所以自己动手丰衣足食,写一个自己能用的,够用就好。
这些东西在网上都很多了,但是我觉得他们的使用都不符合我的要求,所以自己动手丰衣足食,写一个自己能用的,够用就好。
#include <iostream> using namespace std; //单件模板类 template<typename T> class Singleton { protected: static T* m_Instance; Singleton(){} virtual~Singleton(){} public: //实例的获得 static T* Instance() { if(m_Instance==0) m_Instance=new T; return m_Instance; } //单件类的释放 virtual void Release() { if(m_Instance!=0) { delete m_Instance; m_Instance=0; } } }; //单件模板测试类 class Test:public Singleton<Test> { friend class Singleton<Test>; //声明为友员,不然会出错 protected: Test() { a=b=c=0; } virtual ~Test(){} public : int a; int b; int c; }; //初始化静态成员。。。 template<> Test*Singleton<Test>::m_Instance=0; //以下为测试代码 void main() { Test*t=Test::Instance(); t->a=5; t->b=25; t->c=35; cout<<"t: a="<<t->a<<" b="<<t->b<<" c="<<t->c<<endl; Test*t2; t2=Test::Instance(); cout<<"t2 a="<<t2->a<<" b="<<t2->b<<" c="<<t2->c<<endl; t2->Release(); } |
相关文章推荐
- 45. Singleton类的C++/C#实现[Singleton]
- 单例模式(Singleton)及其C++实现
- C++完美实现Singleton模式
- C++实现线程安全的Singleton
- 关于C++实现的Singleton收集 2
- C++ —— 自动Singleton的实现
- C++实现Creational - Singleton模式
- (C++)设计模式------单例模式 singleton(简单的实现和对象释放的控制) -- 创建型模式
- C++实现设计模式: Singleton 单例模式
- 使用C++实现设计模式(连载): 第一回 Singleton 单例模式
- C++ 中的Singleton 类的实现
- Singleton模式在C#与C++中的实现
- C++ 中的Singleton 类的实现讨论
- C++ 中的 Singleton 实现(转)
- 用C++实现单例模式3——如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton
- C++中实现Singleton的正确方法
- C++ —— 自动Singleton的实现
- C++ 中的Singleton 类的实现讨论
- C++ 中的 Singleton 实现
- 设计模式(C++实现):simple factory pattern + singleton pattern