一个完整的单例模式代码

来源:互联网 发布:sqlserver怎么用 编辑:程序博客网 时间:2024/05/22 08:48

一、单例的思想:
1,私有全局static变量instance(一定记得类外部初始化),和构造函数(防止外部new)
2,static函数获取单例,且首次获取是实例化单例
3,析构函数delete并等于null


二、一个完整的单例模式代码:

复制代码
 1 #include<iostream> 2 using namespace std; 3 class CSingleton 4 { 5 private: 6     CSingleton() { 7     } 8     ~CSingleton() { 9         if (m_pInstance == NULL) {10             return;11         }12         delete m_pInstance;13         m_pInstance = NULL;14     }15     static CSingleton *m_pInstance;16 public:17     static CSingleton * GetInstance() {18         if(m_pInstance == NULL)19             m_pInstance = new CSingleton();20         return m_pInstance;21     }22 };23 CSingleton* CSingleton::m_pInstance = NULL;//类的静态成员变量需要在类外边初始化24 25 int main() {26 27     CSingleton* single1 = CSingleton::GetInstance();28     CSingleton* single2 = CSingleton::GetInstance();29 30     if (single1 == single2) {31         cout<<"Same"<<endl;32     }33     return 0;34 }