使用計數類(使用計數是乙個名次,親)主要為了更好的管理於包含指標的類,包含指標的類特別要注意複製控制,注意如下情況
管理類中的指標,應該遵循以下四個規則:
每次建立類的新的物件的時,初始化指標並將使用計數置為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...