C++单例模式
用最简单的语言最简短的代码解释单例模式(Singleton)
GOF的《设计模式》中这样描述:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
Singleton.h文件
1 #pragma once 2 /* 3 C++单例 4 */ 5 class CSingleton 6 { 7 public: 8 static CSingleton* GetInstance(); 9 double GetValue(); 10 private: 11 CSingleton(void); 12 ~CSingleton(void); 13 static CSingleton* m_pSingleton; 14 };
1 #include "StdAfx.h" 2 #include "Singleton.h" 3 4 CSingleton* CSingleton::m_pSingleton = NULL; 5 6 CSingleton::CSingleton(void) 7 { 8 9 } 10 11 CSingleton::~CSingleton(void) 12 { 13 } 14 15 CSingleton* CSingleton::GetInstance() 16 { 17 if(NULL == m_pSingleton) 18 { 19 m_pSingleton = new CSingleton(); 20 } 21 return m_pSingleton; 22 } 23 24 double CSingleton::GetValue() 25 { 26 return 9.0; 27 }
1 void CLoadDllDemoDlg::OnBnClickedButton21() 2 {//单例 3 4 CSingleton* pNew = CSingleton::GetInstance(); 5 double dVal = pNew->GetValue(); 6 }