C++单例模式

单例模式

13.static-----单例模式

要点:

  • 构造函数放在私有里面
  • 提供一个静态的接口去调用构造函数获取对象
//要求:限制只能产生一个对象,在项目任意地方都可以获取到这个唯一对象
class Only
{
public:
	static Only* get_Only()
		/*给外界提供一个成员方法,使之可以调用构造函数获取一个对象。
		但是这是一个普通的成员方法,由于普通的成员方法调用必须依赖this指针,
		而this指针从对象来,外界此时又构造不了对象,
		所以该成员方法不能依赖this指针,故定义为静态函数
		*/
	{
		if (NULL == _only)//避免每一次进来都加锁,提升效率
		{
			_lock.lock();
			if (NULL == _only)//确保只构造一个对象
			{
				_only = new Only();
			}
			_lock.unlock();
		}
		return _only;
	}

private:
	Only();//要调用构造函数就会重新构造对象,因此要想只产生一个对象,外部就不能随意调用构造函数
	static mutex _lock;
	static Only* _only;
};

Only* Only::_only = NULL;
mutex Only::_lock = mutex();

单例模式中的析构函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值