C++單例模式

設計模式是編程的重點,往往在面試時都會考查,而單例模式是最爲簡單、最爲常見、也最該掌握的模式。所以面試時對設計模式的考查考的最多的就是單例模式。

下面我們就來看看單例模式如何實現(C++代碼):

#include<iostream> using namespace std;  class Singleton { 	public: 		static Singleton* Instance(); 	protected: 		Singleton(); 	private: 		static Singleton* _instance;  };  Singleton* Singleton::_instance=0; 	 Singleton::Singleton() { 		cout<<"Singleton..."<<endl;	 }; 		 Singleton*Singleton::Instance() { 		if (_instance==0)  		{ 			_instance=new Singleton(); 		} 		return _instance; }  int main(int argc,char* argv[]) { 	Singleton* sgn=Singleton::Instance(); 		 	return 0; }
其中,Singleton類型的構造函數必須是protected的,保證該類型不可被實例化,靜態成員函數Instance則用來實例化該類型,因爲該函數是靜態,所以每次調用都是同一個實例,這就保證了Singleton類型只能被實例化一次。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章