條款13 17 資源管理

2021-10-24 16:03:17 字數 907 閱讀 5047

2.rall class的準則:資源在建構函式期間獲得,在析構函式期間釋放

//常見的幾種設計方式

禁止複製:也就是禁止管理類的拷貝建構函式和拷貝賦值操作符;

施用引用計數法:例如管理資源為heap物件時,可以使用shared_ptr管理(shared_ptr支援當引用計數為0時,自定義刪除器替代delete)

深拷貝(拷貝底部管理資源):例如管理類中有乙個指標指向heap物件的指標,若有需要可以採取深拷貝

轉移資源的所有權:即希望永遠只有乙個rall物件指向所管理的資源,例如auto_ptr

1. 例如shared_ptr和auto_ptr,提供get成員函式,用於獲得原始指標t*

,並且這兩個智慧型指標過載了-

>和.運算子,也是為了方便使用;

2. 除了智慧型指標以外的管理類,更普遍的方式是為其提供乙個類似於get成員函式,用於得到private內的原始資源;

3. 為管理類提供乙個operator t,可以在需要t引數時,管理類型別隱式轉換為t型別,很方便但很容易產生預期之外的轉換;

int

priority()

; priority函式宣告

void

process

(shared_ptr sp,

int)

;//process函式宣告

1. 呼叫new a

2. 呼叫shared_ptr的拷貝建構函式

3. 呼叫priority()

process

(shared_ptr

(new a)

,priority()

);//呼叫時,需要先進行引數核算。

C 資源管理(13 17條款)

舉個例子 class teamsys teamsys createteamsys 返回指向動態分配的物件teamsys的指標,呼叫者有責任刪除它。voidf 以上 中 可能會出現異常或者return 會導致ts所指向的物件資源無法被釋放。1.使用auto ptr可以避免f函式潛在的資源洩露可能性 v...

MTK資源管理

資源檔案生成的臨時檔案主要有 custmenutree out.c,這個檔案是選單臨時檔案,生成了我們的最終顯示的選單結構。如果你新增的選單沒有顯示,正常顯示的選單突然不顯示了或者顯示錯位了,或者顯示的選單與呼叫的功能不符合了,都可以從這裡查到原因。resource base table.txt這個...

MTK資源管理

使用mtk作開發,常常不可避免和資源打交道,常使用的資源有字串,字型,選單,風格,聲音等,mtk好像沒有系統的專門的資源管理工具,導 致資源管理十分凌亂而容易出問題,雖然有些牛人也開發了一些工具來管理這些資源,但由於使用不便或者其他一些原因,比如資源由大量的巨集控制,以及修改維護 的人多,還有一些其...