您的位置:首页 > 编程语言

单例类模板编写

2015-06-10 10:23 176 查看
template <typename T> class Singleton
{
protected:
static T* ms_singleton;

public:
Singleton()
{
assert(!ms_singleton);
ms_singleton = static_cast<T*>(this);
}
~Singleton()
{
assert(ms_singleton);
ms_singleton = NULL;
}

inline static T& getSingleton()
{
assert(ms_singleton);
return (*ms_singleton);
}

inline static T* getSingletonPtr()
{
return ms_singleton;
}
};


编写单例类只需要继承即可

例:class xx : public Singleton < xx >

改进:ms_singleton为空,new
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  代码