单件模式确保一个类只有一个实例,并提供一个全局访问点。
#include <iostream>
#include <string>
using namespace std;
class Singleton
{
public:
static Singleton* GetInstance();
void print();
void write(string strTmp);
private:
Singleton();
static Singleton* instance;
string str;
};
Singleton::Singleton()
{
str="Test";
}
Singleton* Singleton::GetInstance()
{
if (instance==NULL)
instance=new Singleton();
return instance;
}
void Singleton::print()
{
cout<<str<<endl;
}
void Singleton::write(string strTmp)
{
str=strTmp;
}
Singleton * Singleton::instance = NULL;
void main()
{
Singleton* p=Singleton::GetInstance();
Singleton* p2=Singleton::GetInstance();
p->print();
p2->print();
p->write("haha");
p->print();
p2->print();
}
以上实现的单件模式还是有缺陷的,不适合多线程环境。