单件模式(Singleton Pattern)之C++实现
单件模式确保一个类只有一个实例,并提供一个全局访问点。
#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();}
以上实现的单件模式还是有缺陷的,不适合多线程环境。