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 };
View Code
 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 }
View Code

 

1 void CLoadDllDemoDlg::OnBnClickedButton21()
2 {//单例
3 
4     CSingleton* pNew = CSingleton::GetInstance();
5     double dVal = pNew->GetValue();
6 }

 

posted on 2015-08-11 10:27  lpx15312  阅读(186)  评论(0编辑  收藏  举报

导航