单例模式的C++实现

来源:互联网 发布:魔龙诀经脉进阶数据 编辑:程序博客网 时间:2024/06/05 23:07
写代码时里很多代码都用到了单例模式,由于是不同的类型,每次都写一遍重复实在很烦,因此有人写了一个用宏来实现的版本,由于c++不推荐用宏,因此又想出来了一个用模板实现的版本,还没实际使用,不知道对编码有没有帮助。
#ifndef _SingleInstance_h_#define _SingleInstance_h_#include <stddef.h>template <class T> class CSingleInstance{public:    static T* CreateInstance(){if (NULL == sm_pInstance) sm_pInstance = new T(); return sm_pInstance;}    static T* GetInstance(){return sm_pInstance;}    static void DestroyInstance(){if (NULL != sm_pInstance) delete sm_pInstance;}private:    static T* sm_pInstance;};template <class T> T* CSingleInstance<T>::sm_pInstance = NULL;//调用说明/*class Test{    friend class CSingleInstance<Test>;private:    Test(){}    ~Test(){}};CSingleInstance<Test>::CreateInstance();CSingleInstance<Test>::DestroyInstance();*/#endif // _SingleInstance_h_

原创粉丝点击