C++单例模板
#pragma once
template <typename T>
class Singleton
{
public:
static T *GetInstance()
{
if (NULL == s_ins)
{
s_ins = new (T)();
atexit(Destory);
}
return s_ins;
}
private:
static void Destory()
{
delete s_ins;
s_ins = NULL;
}
Singleton(){}
~Singleton(){}
private:
static T* volatile s_ins;
};
template <typename T>
T* volatile Singleton<T>::s_ins = NULL;
用法:
Singleton<TestClass>::GetInstance()->Func()
浙公网安备 33010602011771号