/******************************************************************
Description: 单件
******************************************************************/
#ifndef _CEGUISingleton_h_
#define _CEGUISingleton_h_
#include <cassert>
#ifdef _WIN32
#pragma warning(disable:4661) //忽略该警告
#endif
template <typename T> class CCSingleton //单例类模板
{
protected:
static T* ms_Singleton;
public:
CCSingleton( void )
{
assert( !ms_Singleton );
ms_Singleton = static_cast<T*>(this);
}
~CCSingleton( void )
{ assert( ms_Singleton ); ms_Singleton = 0; }
static T& getSingleton( void )
{ assert( ms_Singleton ); return ( *ms_Singleton ); }
static T* getSingletonPtr( void )
{ return ( ms_Singleton ); }
private:
CCSingleton& operator=(const CCSingleton&) { return *this; }
CCSingleton(const CCSingleton&) {}
};
#endif
服务器框架NetworkModel分析单例
最新推荐文章于 2023-05-31 21:42:43 发布