标签:单例 懒汉 get 实例化 返回 线程 color singleton 不用
用处:比如程序只能有一个日志系统,只能有一个管理器等
class CSingleton{ public: static CSingleton* GetInstance(){ if(m_pInstance==NULL){ //m_pInstance==nullptr m_pInstance=new CSingleton(); } return m_pInstance; } private: CSingleton(){} ~CSingleton(){ if(Singleton::local_instance!=nullptr){ delete Singleton::local_instance; } } static CSingleton* m_pInstance; }; CSingleton* CSingleton::m_pInstance=NULL; //或者 class CSingleton{ public: static CSingleton* GetInstance(){ return m_pInstance; } private: CSingleton(){} ~CSingleton(){ if(Singleton::local_instance!=nullptr){ delete Singleton::local_instance; } } static CSingleton* m_pInstance; }; CSingleton* CSingleton::m_pInstance=new CSingleton();;
//调用 CSingleton* p1=CSingleton::GetInstance(); CSingleton* p2=CSingleton::GetInstance(); //p1和p2地址一样
class Singleton{ private: static Singleton* local_instance; Singleton(){} ~Singleton(){} public: static Singleton* getInstance(){ static Singleton local; return &local; } //或者 static Singleton& getInstance(){ static Singleton local; return local; } };
//调用 Singleton* p1=Singleton::getInstance(); Singleton* p2=Singleton::getInstance(); //p1和p2地址一样
标签:单例 懒汉 get 实例化 返回 线程 color singleton 不用
原文地址:https://www.cnblogs.com/k5bg/p/11063339.html