单例是c++中比较常用的设计模式,在游戏服务器开发中很多全局管理器都是用单例实现。其实单例不析构也不会有任何问题,但是有的时候需要查内存泄漏问题那么单例不析构会导致工具报错太多,不利于查找问题。普通单例没有通用性,在我参与的所有游戏项目中都是模板单例,网上有很多单例析构的例子,但是我几乎没有找到有模板单例析构正常的代码。模板单例析构代码如下:
template<typename T>
class CSingleton
{
public:
static T& GetInstance()
{
if (NULL == m_pInstance)
{
m_pInstance = new T();
assert(m_pInstance != NULL);
CSingleton<T>::GetGC();
}
return *m_pInstance;
}
protected: