資源管理

基於對象的資源管理方法,建立在C++對構造函數、析構函數、拷貝函數的基礎上。

條款13:以對象管理資源(Use objects to manage resources)

可能出現的情形:

如果在一個函數中使用了一塊資源,那麼在這個函數結束前,有義務去釋放這一塊資源。但是可能因爲一個過早的return語句,或者異常的拋出,使得最後沒有釋放這塊資源。

正確的做法:

1、獲取資源後立刻放進管理對象內。

2、管理對象運用析構函數確保資源被釋放。

RAII:Resource Acquisition Is Initialization(資源獲取時機便是初始化時機)

 

條款14:在資源管理類中小心copying行爲(Think carefully about copying behavior in resource-managing classes)

可能出現的問題:

對於auto_ptr和shared_ptr負責管理heap-based資源上,然而並非所有資源都是heap-based,所以有時候你需要建立自己的資源管理類。(猜想:比如互斥鎖,描述符?)

 

 

發佈了275 篇原創文章 · 獲贊 37 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章