在本网站中看到一个自己感觉比较好的关于原型模式的代码,直接拷贝过来了,希望不会追究版权哦
#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;
}