管理類中指標,實現使用計數類,兩種經典策略

2021-06-02 21:51:53 字數 740 閱讀 4862

使用計數類(使用計數是乙個名次,親)主要為了更好的管理於包含指標的類,包含指標的類特別要注意複製控制,注意如下情況

管理類中的指標,應該遵循以下四個規則:

每次建立類的新的物件的時,初始化指標並將使用計數置為1。

當物件作為另一物件的副本而建立時,複製建構函式複製相應指標並增加與之相應的使用計數的值。從copy-constructor 入手

對乙個物件進行賦值的時候,賦值操作符減少左運算元所指物件的使用計數的值(如果為使用計數減少為 0,則刪除物件),並增加右運算元所指物件的使用計數的值。從過載 operator = 入手。

呼叫析構函式的時候,析構函式減少使用計數的值,(如果使用計數減少至0, 則刪除物件)。

定義智慧型指標類:

1. 計數器 不能放在當前類中,可以使用友元。

#includeclass u_ptr

~u_ptr();

};class hasptr

hasptr(const hasptr &orig):ptr(orig.ptr),val(orig.val)

hasptr &operator=(const hasptr&);

~hasptr();

private:

u_ptr *ptr;

int val;

};hasptr& hasptr::operator=(const hasptr &rhs)

int main()

智慧型指標(使用計數) 定義值型類

1 什麼是使用計數?使用計數是複製控制成員中使用的程式設計技術。將乙個計數器與類指向的物件相關聯,用於跟蹤該類有多少個物件共享同一指標。建立乙個單獨類指向共享物件並管理使用計數。由建構函式設定共享物件的狀態並將使用計數置為1。每當由複製建構函式或賦值操作符生成乙個新副本時,使用計數加1。由析構函式撤...

兩種智慧型指標 RAII智慧型指標和引用計數智慧型指標

raii的全稱是 resource acquisition is initialization 也就是 資源獲取就是初始化 就像記憶體分配是在變數初始化的時候分配的 比如,當程式結束時,系統會自動釋放程式所使用的資源 函式傳值時,當函式呼叫結束,該值也將消亡。include define safe ...

重寫父類方法的兩種實現方式

如果想重寫乙個類的方法,既可以通過繼承該類 在這裡就不多少了 還可以通過類別 類的擴充套件catologe 方法 比如重寫uialertview 的 layoutsubviews 這樣類擴充套件是可以的 但是,這樣會導致在同乙個類裡面用到的所有uialertview 都會重寫這樣的方法 導 inte...