人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

C++箴言:資源管理類的拷貝行為

C++箴言:資源管理類的拷貝行為

更新時間:2022-09-16 文章作者:未知 信息來源:網絡 閱讀次數:

在上一篇文章中介紹了作為資源管理類支柱的 Resource Acquisition Is Initialization (RAII) 原則,并描述了 auto_ptr 和 tr1::shared_ptr 在基于堆的資源上運用這一原則的表現。并非所有的資源都是基于堆的,然而,對于這樣的資源,像 auto_ptr 和 tr1::shared_ptr 這樣的智能指針通常就不像 resource handlers(資源管理者)那樣合適。在這種情況下,有時,你可能要根據你自己的需要去創建你自己的資源管理類。

  例如,假設你使用 C API 提供的 lock 和 unlock 函數去操縱 Mutex 類型的互斥體對象:

  

  void lock(Mutex *pm); // lock mutex pointed to by pm

  

  void unlock(Mutex *pm); // unlock the mutex

  為了確保你從不會忘記解鎖一個被你加了鎖的 Mutex,你希望創建一個類來管理鎖。RAII 原則規定了這樣一個類的基本結構,通過構造函數獲取資源并通過析構函數釋放它:

  

  class Lock {

   public:

    explicit Lock(Mutex *pm)

    : mutexPtr(pm)

    { lock(mutexPtr); } // acquire resource

   

    ~Lock() { unlock(mutexPtr); } // release resource

  

   private:

    Mutex *mutexPtr;

  };

  客戶按照 RAII 風格的慣例來使用 Lock:

  

  Mutex m; // define the mutex you need to use

  ...

  { // create block to define critical section

   Lock ml(&m); // lock the mutex

   ... // perform critical section operations

  

  } // automatically unlock mutex at end

  // of block

  這沒什么問題,但是如果一個 Lock 對象被拷貝應該發生什么? 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 临清市| 南投县| 康保县| 海淀区| 绵竹市| 衢州市| 武平县| 泽库县| 九龙城区| 工布江达县| 泉州市| 抚远县| 加查县| 江门市| 商丘市| 杭锦旗| 佛冈县| 漳州市| 湖口县| 灵川县| 旬邑县| 永济市| 涟源市| 玛纳斯县| 卢湾区| 阜南县| 昭通市| 玛曲县| 翁牛特旗| 同德县| 垫江县| 岚皋县| 阳江市| 桂林市| 松溪县| 怀柔区| 淅川县| 永泰县| 铜梁县| 台南县| 宁德市|