写代码时里很多代码都用到了单例模式,由于是不同的类型,每次都写一遍重复实在很烦,因此有人写了一个用宏来实现的版本,由于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_