//不解釋
#ifndef __SINGLETON_H__
#define __SINGLETON_H__
template <class T>
class Singleton
{
public:
static inline T* instance();
void release();
protected:
Singleton();
~Singleton();
static T* _instance;
};
template <class T>
Singleton<T>::Singleton()
{
}
template <class T>
Singleton<T>::~Singleton()
{
}
template <class T>
inline T* Singleton<T>::instance()
{
if(!_instance)
{
_instance = new T;
}
return _instance;
}
template <class T>
void Singleton<T>::release()
{
if(!_instance)
return;
delete _instance;
_instance = 0;
}
#define DECLARE_SINGLETON_MEMBER(_Ty) \
template <> _Ty* Singleton<_Ty>::_instance = NULL;
#endif // __SINGLETON_H__
一個單例模板【Singleton】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.