宏定义C++单例模式

本文介绍了一种使用宏定义在C++中创建单例类的方法,包括声明和实现步骤。通过宏定义,可以确保单例的唯一实例,并提供获取实例及释放单例的静态方法。构造函数和析构函数被设为私有,以防止外部直接创建或删除实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//通用的头文件

// 宏定义一个类实现单例需要做的一些工作。
// 每个单例类最好将其构造函数和虚析构函数设置为private
#pragma once

#define SINGLETON_DECLARE(theclass)         \//头文件类中调用
public:                                     \
	static theclass * SnglPtr();            \
	static void FreeSingleton();            \
private:                                    \
	static theclass * m_s##theclass;        \

#define SINGLETON_IMPLEMENT(theclass)       \//源文件中的预处理下面调用
	theclass * theclass::m_s##theclass = NULL;  \
	theclass * theclass::SnglPtr()              \
{                                           \
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;               \
	}                                       \
}                                           \

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值