一、单例的思想:
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 }