设计模式--单例模式(c++实现)

本文介绍了设计模式中的单例模式,确保一个类只有一个实例,并提供全局访问点。通过C++代码示例解释了如何使用Double Check解决线程安全问题,保证在多线程环境下也能正确实现单例。
摘要由CSDN通过智能技术生成

定义:顾名思义,确保一个类在任何情况下都只有一个实例。

#include<iostream>
using namespace std;

class SingletonDP
{
public:
	static SingletonDP* GetInstance();
private:
	SingletonDP() 
	{ 
		cout << "Constructor" << endl; 
	};//构造函数私有
	static SingletonDP* pSingleInst;
};

SingletonDP* SingletonDP::pSingleInst = nullptr;
SingletonDP* SingletonDP::GetInstance()
{
	cout << "Return Instance By GetInstance()" << endl;
	if (!pSingleInst)
		pSingleInst = new SingletonDP();
	return pSingleInst;
}

int main()
{
	cout << "SingletonDPTest" << endl;
	SingletonDP *pTemp1 = SingletonDP::GetInstance();
	SingletonDP *pTemp2 = nullptr;
	if (pTemp1) pTemp2 = pTemp1->GetInstance();
	cout << "pTemp1 Address: " << pTemp1 << endl;
	cout << "pTemp2 Address: " << pTemp2 << endl;
	system("pause");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值