C++实现一个单例模板类
单例模式在项目开发中使用得比较多,一个单例的模板类显得很有必要,避免每次都要重复定义一个单例类型
//非多线程模式下的一个单例模板类的实现
// template_singleton.h
#include
template
class TSingleton{
protected:
TSingleton() {}
~TSingleton(){}
public:
static T& GetInstance();
static void ReleaseInstance();
private:
TSingleton(const TSingleton& kObj){}
TSingleton& operator=(const TSingleton& kObj){}
private:
static T *instance_ptr_;
};
template
T* TSingleton
template
T& TSingleton
if (nullptr == instance_ptr_){
instance_ptr_ = new T;
assert(nullptr != instance_ptr_);
}
return *instance_ptr_;
}
template
void TSingleton
if (nullptr != instance_ptr_){
delete instance_ptr_;
instance_ptr_ = nullptr;
}
}