1 #ifndef _SINGLETON_H_ 2 #define _SINGLETON_H_ 3 4 #include <iostream> 5 using namespace std; 6 7 class Singleton 8 { 9 public: 10 static Singleton* Instance(); 11 12 protected: 13 Singleton(); 14 15 private: 16 static Singleton* _instance; 17 } 18 19 #endif
1 #include "Singleton.h" 2 3 #include <iostream> 4 using namespace std; 5 6 Singleton* Singleton::_instance = 0; 7 Singleton::Singleton() 8 { 9 cout<<"Singleton...."<<endl; 10 } 11 12 Singleton* Singleton::Instance() 13 { 14 if(_instance == 0) 15 _instance = new Singleton(); 16 17 return _instance; 18 }
注:Singleton不可以被实例化,因此将其构造函数声明为protected或者直接声明为private。