单例模式

/**	@file Singleton.h
*	@note 
*	@brief 宏定义一个类实现单例需要做的一些工作。
*	@author		Jlzlight
*	@date		2011-09-27
*	@note		每个单例类最好将其构造函数和虚析构函数设置为private
*/
#include <new>


#define SINGLETON_DECLARE(theclass)		\
public:									\
	static theclass * GetSingletonPtr();\
	static void FreeSingleton();		\
private:								\
	static theclass * m_s##theclass	


#define SINGLETON_IMPLEMENT(theclass)		\
theclass * theclass::m_s##theclass = NULL;	\
theclass * theclass::GetSingletonPtr()		\
{											\
	if (NULL == m_s##theclass)				\
	{										\
	    m_s##theclass = new(std::nothrow) theclass;	\
	}										\
	return m_s##theclass;					\
}											\
void theclass::FreeSingleton()				\
{											\
	if (NULL != m_s##theclass)				\
	{										\
		delete m_s##theclass;				\
        m_s##theclass = NULL;              \
	}										\
}											\


//
class ClassA
{
private:
	ClassA(void);
	~ClassA(void);


	SINGLETON_DECLARE(ClassA);
};

SINGLETON_IMPLEMENT(CAppSession);


CAppSession::CAppSession(void);

ClassA::ClassA()
{}
ClassA::~ClassA()
{}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值