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好像沒有系統的專門的資源管理工具,導 致資源管理十分凌亂而容易出問題,雖然有些牛人也開發了一些工具來管理這些資源,但由於使用不便或者其他一些原因,比如資源由大量的巨集控制,以及修改維護 的人多,還有一些其...