C++单例模式

设计模式是编程的重点,往往在面试时都会考查,而单例模式是最为简单、最为常见、也最该掌握的模式。所以面试时对设计模式的考查考的最多的就是单例模式。

下面我们就来看看单例模式如何实现(C++代码):

#include<iostream>
using namespace std;

class Singleton {
	public:
		static Singleton* Instance();
	protected:
		Singleton();
	private:
		static Singleton* _instance; 
};

Singleton* Singleton::_instance=0;
	
Singleton::Singleton()
{
		cout<<"Singleton..."<<endl;	
};
		
Singleton*Singleton::Instance()
{
		if (_instance==0) 
		{
			_instance=new Singleton();
		}
		return _instance;
}

int main(int argc,char* argv[])
{
	Singleton* sgn=Singleton::Instance();
		
	return 0;
}

其中,Singleton类型的构造函数必须是protected的,保证该类型不可被实例化,静态成员函数Instance则用来实例化该类型,因为该函数是静态,所以每次调用都是同一个实例,这就保证了Singleton类型只能被实例化一次。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值