C++实现单例
程序员文章站
2022-12-21 15:15:04
实现代码如下 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的方式,更好的是,还要考虑多线程调用构造函数的事例。