Effective C++ 讀書筆記之Part3.Resource Management

來源:互聯網
上載者:User
13. Use objects to manage resources.總結:第一,為了防止資源流失,請使用RAII對象,它們在建構函式中獲得資源並在西溝函數中釋放資源。第二,兩個常被使用的RAII class分別是tr1::shared_ptr和auto_ptr。前者通常是較佳選擇,因為其copy行為比較直觀。若選擇auto_ptr,複製動作會使它(被複製物)指向null。14.Think carefully about copying behavior in resource-managing classes.總結:第一,複製RAII對象必須一併複製它所管理的資源,所以資源的copying行為決定RAII對象的copying行為。第二,普遍而常見的RAII class copying行為是:抑制copying、施行引用計數法(reference counting)。不過其他行為也都可能被實現。15.Provide access to raw resources in resource-managing classes.總結:第一,APIs往往要求訪問原始資源(raw resources),所以每一個RAII class應該提供一個“取得其所管理之資源”的辦法。第二,對原始資源的訪問可能經由現實轉換或者隱式轉換。一般而言顯式轉換比較安全,但隱式轉換對客戶比較方便。16.Use the same form in corresponding uses of new and delete.總結:如果你在new運算式中使用[],必須在相應的delete運算式中也使用[]。如果你在new運算式中不使用[],一定不要在相應的delete運算式中使用[]。17.Store newed objects in smart pointers in standalone statements.總結:以獨立語句將newedObject Storage Service於(置入)職能指標內。如果不則樣做,一旦異常被拋出,有可能導致難以覺察的資源流失。感悟:這部分的內容,除了new 和delete之前用的比較多之外,就是引用計數用的比較多。但是不是按照這本書的方式,這本書介紹的方式,理解的不是那麼透徹,因為之前沒這麼用過,也沒有見過這麼用的。這部分內容回頭需要重讀一下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.