⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 singleton.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 H
字号:
#ifndef __SINGLETON_H__
#define __SINGLETON_H__

///////////////////////////////////////////////////////////////////////////////
// include define statement
///////////////////////////////////////////////////////////////////////////////

#include "assert.h"

///////////////////////////////////////////////////////////////////////////////
// class define statement
///////////////////////////////////////////////////////////////////////////////

template <typename T> class CSingleton
{
	static T* ms_Singleton;
	
public:
	CSingleton(void)
	{
		assert(!ms_Singleton);
		int offset = (int)(T*)1 - (int)(CSingleton <T>*)(T*)1;
		ms_Singleton = (T*)((int)this + offset);
		
	}
	
	~CSingleton(void)
	{
		assert(ms_Singleton);
		ms_Singleton = 0;
	}
	
	static T* GetSingleton(void)
	{
		assert(ms_Singleton);
		return ms_Singleton;
	}
	
	static T* GetSingletonPtr(void)
	{
		assert(ms_Singleton);
		return ms_Singleton;
	}
	
	static T& GetSingletonInstance(void)
	{
		assert(ms_Singleton);
		return(*ms_Singleton);
	}
};

template <typename T> T* CSingleton <T>::ms_Singleton = 0;

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -