c/c++语言开发共享C++实现单例

实现代码如下 include using namespace std; class Singleon{ private: Singleon(){ cout …


实现代码如下

#include <iostream> using namespace std; class singleon{ private:     singleon(){     cout<<"调用构造函数了"<<endl; }     static singleon* instance; public:     static singleon * getinstance(){         return instance;     }     static singleon * initinstance(){         if(instance==nullptr){             instance=new singleon();         }else{             cout<<"已经创造过对象了,没有再创建"<<endl;         }         return instance;     }     static void destory(){         delete instance;         instance=nullptr;     } }; singleon *singleon::instance = nullptr; int main() {     singleon *s1=singleon::initinstance();     singleon *s2=singleon::initinstance();     singleon *s3=singleon::initinstance();     cout<<s1<<endl;     cout<<s2<<endl;     cout<<s3<<endl; }

运行结果

调用构造函数了 已经创造过对象了,没有再创建 已经创造过对象了,没有再创建 0x10120e750 0x10120e750 0x10120e750 program ended with exit code: 0

值得说明的是,这个是最low的方式,更好的是,还要考虑多线程调用构造函数的事例。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/601897.html

(0)
上一篇 2021年5月11日
下一篇 2021年5月11日

精彩推荐