原型模式代码

在本网站中看到一个自己感觉比较好的关于原型模式的代码,直接拷贝过来了,希望不会追究版权哦吐舌头

 

#include <iostream>   
#include <string>   
using namespace std;  


class Singleton  
{
public:  
	static Singleton* GetInstance();  
	static void unit();  
private:  
	static Singleton* instance;  
	Singleton();  
	~Singleton();  
	int ival;  
	std::string str;  

class CGarbo   //嵌套类,他的惟一工作就是在析构函数中删除Singleton对象   
{  
public:  
	~CGarbo();  
}; 

static CGarbo Garbo; // 定义一个静态成员,在程序结束时,系统会调用它的析构函数     
};  
#endif   

Singleton* Singleton::instance = 0;  
Singleton::CGarbo Singleton::Garbo;  

Singleton* Singleton::GetInstance()  
{  
	if(instance == 0)  
	{  
		instance = new Singleton();  
	}  
	return instance;  
}  
Singleton::Singleton()  
{  
}  
Singleton::~Singleton()  
{  
	std::cout<<"调用~Singleton"<<std::endl;  
	//std::cout<<"~Singleton()"<<std::endl;   
}  
Singleton::CGarbo::~CGarbo()  
{  
	std::cout<<"析构了。。。。。"<<std::endl;  
	if(Singleton::instance)  
	{  
		delete Singleton::instance;  
		Singleton::instance = 0;  
	}  
}  

int main()  
{  
	Singleton* a = Singleton::GetInstance();  
	Singleton* b = Singleton::GetInstance();  

	if(a=b)  
	{  
		cout<<"相等"<<endl;  
	}  
	system("pause");  


	return 0;  
}  


 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值