劍指offer 面試題2 實現單例模式

2021-10-03 19:30:57 字數 919 閱讀 5133

版本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...