版本1:餓漢式,在一開始就建立好例項
建構函式私有,使用靜態區域性變數,缺點只能在c++11以上環境中執行
class
singleton
static singleton&
getinstance()
private
:singleton()
};//或者
class
singleton
static singleton *
getinstance()
private
:singleton()
};
版本二:懶漢式,在需要的時候再建立例項,
一開始只會分配指標空間,而後面才會分配物件
若兩個執行緒同時呼叫getinstance()會有問題,需要加鎖
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
class
singleton
public
:static singleton*
getinstance()
pthread_mutex_unlock
(&mutex);}
return m_instance;}}
;
pthread_mutex_t singleton::mutex;
singleton* singleton::m_instance =
null
;int
main()
劍指offer 面試題2 實現單例模式
終於把簡直offer看完了一遍 所以第二遍我決定要美乙個題自己去實現一遍,會加入自己的理解 但是不一定對哈 package t2singleton 餓漢式 author yxx public class singleton private static singleton singleton new...
劍指offer面試題2(單例設計模式)
單例設計模式屬於建立設計模式,是設計模式中很常用的一種。確保某個類中只有乙個例項,並且自行例項化並向整個系統提供這個例項。確保某個類有且僅有乙個例項,避免產生多個物件消耗過多的資源,或者某種型別的物件有且僅有乙個。構造方法不對外公開,一般用private修飾。通過乙個靜態方法返回單例類的例項。確保單...
劍指offer 面試題2
單例模式是面試經常會提及的題目 那麼什麼是單例模式?怎麼實現單例模式?以上問題是本節的核心 首先,單例模式是指乙個類只能定義乙個物件,或者說乙個類只能擁有乙個物件。其次,怎麼實現單例模式,通過將建構函式宣告為private,利用static 引數的特性作為標識進行判斷。如下 include usin...