单例模式实例

来源:互联网 发布:中国税务报网络报 编辑:程序博客网 时间:2024/05/11 12:34
//单例类的C++实现   class Singleton{public:       static Singleton* GetInstance();//工厂方法(用来获得实例)       int getVar();//获得var的值       void setVar(int);//设置var的值    private:       Singleton();//注意:构造方法私有       virtual ~Singleton();       static Singleton* instance;//惟一实例       int var;//成员变量(用于测试)  }; //构造方法实现   Singleton::Singleton()   {       this->var = 20;       cout<<"Singleton Constructor"<<endl;   }Singleton::~Singleton(){    if(instance != NULL)        {        delete instance;        }}//初始化静态成员Singleton* Singleton::instance=NULL;Singleton* Singleton::GetInstance()   {       if(instance == NULL)        {        instance = new Singleton();        }    return instance;   }  int Singleton::getVar()   {       return this->var;   }   void Singleton::setVar(int var)   {       this->var = var;   } //main   int main(int argc, char* argv[])   {       Singleton *ton1 = Singleton::GetInstance();       Singleton *ton2 = Singleton::GetInstance();       cout<<"ton1 var = "<<ton1->getVar()<<endl;       ton1->setVar(150);      cout<<"ton2 var = "<<ton2->getVar()<<endl;       return 0;}