C 中的單例模式

2021-09-11 02:09:15 字數 829 閱讀 8026

c++中的單例模式

靜態成員經典應用 - 單例模式:

在程式執行過程中,可能會希望某些類的例項物件永遠只有乙個

條件1.把建構函式私有化

2.定義乙個私有的靜態成員變數指標,用於指向單例物件

3.提供乙個公共的返回單例物件的靜態成員函式.

class rocket

return ms_rocket;

}static void deleterocket()

private:

static rocket *ms_rocket;// 全域性區,永遠只有乙個物件

rocket()

~rocket()

// 單例模式需要禁止掉:拷貝行為,賦值行為

rocket(const rocket &rocket){}

void operator=(const rocket &rocket){}

};// 初始化 左邊rocket *是靜態成員變數型別,這個靜態成員變數屬於rocket這個類

rocket *rocket::ms_rocket = null;

int main()

delete的含義:

delete的含義:

int main()

棧空間 堆空間

p = 0x110 位址為0x110處儲存:int 4個位元組儲存值為5

delete p//表示**掉堆空間的所佔的4個位元組的空間即p指標指向的記憶體空間中儲存的5,並不會清空指標p的值,即p扔等於0x110.

C 中單例模式

最簡單的單例實現只需要乙個全域性物件 some class the instance some class get instance 這個實現簡單到沒什麼可說,它在絕大多數情況下能正常工作,之所以說是 絕大多數 主要原因是 2 構造的時間點其實是不確定的,c 標準只要求這個物件在第一次被使用前,它的...

C 中的單例模式

單例模式 物件只能出現一次 1.將建構函式私有化 2.使用乙個公開靜態方法 3.使用乙個 靜態屬性進行判斷當前視窗是否被建立。private regsiterwindow public static regsiterwindow selfwindow null public static regsi...

C 中的單例模式

1 特徵 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。2 意圖 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。3 主要解決 乙個全域性使用的類頻繁地建立與銷毀。4 何時使用 當您想控制例項數目,節省系統資源的時候。5 如何解決 ...