C++中实现单例模式方法

来源:互联网 发布:sql replace替换空值 编辑:程序博客网 时间:2024/06/05 10:03
1.C++语言实现单例模方法一
class Singleton{private:static Singleton* single;Singleton(){cout<<"construct of Singleton"<<endl;}public:static Singleton& getInstance(){if(single==NULL)single=new Singleton();return *single;}class CGarbage{public:CGarbage(){cout<<"construct of CGarbage"<<endl;}~CGarbage(){if(single!=NULL)delete single;cout<<"delete single"<<endl;}};private:static CGarbage cg;};Singleton* Singleton::single=NULL;Singleton::CGarbage Singleton::cg;int main(){    Singleton::getInstance();    return 0;}
2.C++语言实现单例模式方法二
class Singleton{private:Singleton(){cout<<"construct of Singleton"<<endl;}public:static Singleton& getInstance(){static Singleton single;return single;}};
3.C++语言实现单例模式方法三
class Singleton{private:static Singleton single;Singleton(){cout<<"construct of Singleton"<<endl;}public:static Singleton& getInstance(){return single;}~Singleton(){cout<<"destruct of Singleton"<<endl;}};Singleton Singleton::single;

 

0 0