C 單例模式

2022-05-08 06:48:07 字數 1139 閱讀 1538

簡單單例模式的使用

一共有兩點:

1. 建構函式必須是private的,如果不是private的,外部物件就可以建立,就可以多個,即不屬於單例模式。單例模式要求必須乙個。

2. 類必須提供至少乙個static的方法,用於對外建立自身的唯一物件。(本身控制,判斷指標是否為空,為空建立,不為空則不建立,體現在唯一上。)

簡單總結:建構函式private + 方法static + 保唯一

單例模式的好處是唯一,避免記憶體、連線等資源的浪費,比如配置檔案,就乙份,可共享。

舉例:return 0;

}public:

if (null == m_pcfg)

//指向自身物件,目的僅建立一次物件,即單例模式。

//返回指向自身的乙個指標,返回建立的單例模式的位址

return m_pcfg;

private:

變數初始化的方式有兩種:

int i=0;

int i;

i=0;

因為建立物件的時候,一定會呼叫建構函式。 不論是預設的還是自實現的,一定要呼叫。

又因為建構函式是私有的,所以不能建立物件(例項),沒有例項就不能呼叫類中的普通方法(非static方法)

加上static後,就變成了全域性類方法。可以通過以下兩種方法進行使用。

1. 類名+::+ static方法 [必須是static的]

2. 物件.或->static方法 [一般使用方式1]

; //物件的指標變數

;這種做法正確。 指標是位址的指向,並沒有建立物件。真正的建立物件是getinstance來建立的。

為什麼getinstance可以建立?

答:類成員方法,只能物件來調。

引用是別名的概念,引用必須指向同一種型別,並且只能賦值一次。

指標是同型別之間任意變數指向。

C 單例模式

include using namespace std 單例類的c 實現 class singleton 構造方法實現 singleton singleton void singleton setvar int var main int main int argc,char argv return ...

C 單例模式

實現方式一 include template typename t class singleton boost noncopyable static void init private static pthread once t ponce statict value template typena...

C 單例模式

效率有點低,但是還算安全的單例模式,靜態成員實現方式 class singleton public static singleton getinstance singleton singleton getinstance unlock return m instance 內部靜態例項的懶漢模式,c ...