</pre><pre name="code" class="cpp">template <class T>
class Singleton
{
public:
static T* instance();
void releaseSelf();
protected:
Singleton(void){}
~Singleton(void){}
static T* _instance;
};
template <class T>
inline T* Singleton<T>::instance()
{
if(!_instance)
_instance = new T;
return _instance;
}
template <class T>
void Singleton<T>::releaseSelf()
{
if (!_instance)
return;
delete _instance;
_instance = 0;
}
template<class T>
T* Singleton<T>::_instance = (T*)NULL;
模版单例模式写法
