单例模式的概念理解可以参考以下两个网站的内容:
http://blog.csdn.net/zhengzhb/article/details/7331369
http://blog.csdn.net/hackbuteer1/article/details/7460019
我这里写个VS2008编译通过的单例模式
首先在CSingleton.h中代码如下:
1 #include <iostream> 2 class CSingleton 3 { 4 private: 5 static CSingleton *m_pInstance; 6 CSingleton() 7 {} 8 class CGarbor 9 { 10 public: 11 ~CGarbor() 12 { 13 if(NULL == m_pInstance) 14 { 15 delete m_pInstance; 16 } 17 } 18 }; 19 static CGarbor m_Garbor; 20 public: 21 static CSingleton *GetInstance(); 22 };
然后CSingleton.cpp中代码如下:
1 #include "CSingleton.h" 2 3 CSingleton *CSingleton :: m_pInstance = NULL; 4 CSingleton *CSingleton :: GetInstance() 5 { 6 if(NULL == m_pInstance) 7 m_pInstance = new CSingleton(); 8 return m_pInstance; 9 }
在main函数中就可以这么调用了
1 #include "CSingleton.h"
2 CSingleton *pInstance = CSingleton :: GetInstance();
这是C++编写的一个简单的单例模式。