青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-60  評論-262  文章-1  trackbacks-0

Ralph Shane (free2000fly at gmail dot com)

Smart Pointer

概述

包含兩種指針: 強指針 strong_ptr 和 弱指針 weak_ptr。基本上可以替換 std::shared_ptr 和 std::weak_ptr.

強指針對象持有物件的指針並增加“強”引用計數;當強指針對象析搆時,“強”引用計數自減;當“強”引用計數自減到 0 時,強指針對象釋放物件實體。

弱指針對象不負責管理所持有物件的生命周期,它僅僅維護著一個“弱”引用計數,並在需要時從自身生成一個強指針。弱指針的存在是爲了避免循環引用情況的出現,從而導致智能指針持有的物件無法釋放。

實現細節

  1. 簡單的類 ref_count 用於實現對“強”引用計數和“弱”引用計數的操作。

  2. 基類 base_ptr 實現了強指針和弱指針的絕大部分邏輯,這個類是強指針和弱指針共同的基類。有兩個成員變量,ref_count 對象實體指針 m_counter 和 raw 物件指針。這個類的關鍵點有四:

    (1) 在非零的 raw 物件指針傳入到構造函數時,持有該指針,並創建 ref_count 對象實體指針 m_counter 成員變量,此時“強”引用計數為 1,而“弱”引用計數為 0。

    (2) 在“拷貝構造函數”的參數裏傳入強指針或弱指針對象時,調用 acquire 函數。

    (3) acquire 函數裏完成兩件事: 持有傳入的 ref_count 對象指針,增加“強”引用計數或“弱”引用計數;持有傳入的 raw 物件指針。

    (4) 在 base_ptr 對象析搆時,調用最關鍵的 release 函數。release 函數針對自身 base_ptr 對象是強指針還是弱指針決定“強”引用計數或“弱”引用計數的自減。當“強”引用計數為 0 時,釋放(delete)持有的物件。繼續下一步的判斷,當“強”引用計數和“弱”引用計數都為 0 時,釋放(delete)ref_count 對象實體指針 m_counter。然後將 raw 物件指針 m_ptrm_counter 變量歸零。

  3. strong_ptr 類基本上就是轉發 base_ptr 基類的操作。weak_ptr 類與 strong_ptr 類似,就是將對 raw 物件指針的直接操作屏蔽掉。

源代碼的下載地址: https://github.com/free2000fly/SmartPointer/blob/master/smart_ptr.h
 

posted on 2013-06-15 13:18 free2000fly 閱讀(2247) 評論(1)  編輯 收藏 引用

評論:
# re: 輕量級基於引用計數的智能指針類 2013-06-19 10:03 |
解開了我心中關于weak_ptr的疑惑,謝謝。  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品久久久久9999| 亚洲一区二区三| 麻豆91精品| 亚洲视频香蕉人妖| 一区二区三区波多野结衣在线观看| 亚洲精品在线视频观看| 国产精品家庭影院| 久久夜色精品亚洲噜噜国产mv| 亚洲性线免费观看视频成熟| 久久九九99| 一本色道久久综合狠狠躁的推荐| 亚洲国产成人精品视频| 国产亚洲成人一区| 欧美日本一区二区视频在线观看| 猛干欧美女孩| 免费一级欧美在线大片| 欧美一区二区三区视频| 亚洲一二三级电影| 亚洲欧美日韩直播| 亚洲欧美精品suv| 午夜亚洲性色视频| 久久久久免费视频| 久久男女视频| 老牛国产精品一区的观看方式| 麻豆精品网站| 一区二区三区日韩在线观看| 亚洲午夜激情网站| 91久久久国产精品| 亚洲看片一区| 91久久久久久久久| 欧美片在线播放| 久久精品国产一区二区电影| 亚洲精品国产系列| 亚洲激情在线观看视频免费| 亚洲区欧美区| 欧美亚洲三级| 欧美一区二区三区四区高清| 亚洲视频免费看| 久久久水蜜桃| 99精品久久久| 99国产成+人+综合+亚洲欧美| 亚洲欧美日韩国产一区| 老**午夜毛片一区二区三区| 欧美自拍偷拍| 欧美精品1区| 亚洲欧美韩国| 国产精品国产a| 亚洲第一精品夜夜躁人人爽| 国产日本亚洲高清| 亚洲精品在线看| 久久久www成人免费毛片麻豆| 国产精品国色综合久久| 欧美日韩在线精品| 国产精品久久久久久久久久直播| 国产一级一区二区| 一本高清dvd不卡在线观看| 中文欧美字幕免费| 国产欧美视频一区二区| 99在线|亚洲一区二区| 久久久蜜桃一区二区人| 久久国产手机看片| 国产精品乱码妇女bbbb| 亚洲日韩中文字幕在线播放| 久久亚洲影音av资源网| 亚洲一区二区在线免费观看视频| 亚洲私人影院| 久久综合色播五月| 国产偷自视频区视频一区二区| 亚洲美女av网站| 免费久久久一本精品久久区| 欧美一进一出视频| 精品成人免费| 久久免费黄色| 亚洲啪啪91| 欧美成人有码| 国产精品主播| 午夜日韩在线观看| 一区二区三区免费网站| 欧美日韩精品欧美日韩精品| 日韩午夜中文字幕| 亚洲黄色成人网| 欧美精品1区2区3区| 午夜精品国产| 亚洲一卡久久| 好吊一区二区三区| 久久天天躁夜夜躁狠狠躁2022 | 美女免费视频一区| 亚洲视频1区| 欧美人在线观看| 亚洲国产欧美日韩精品| 欧美国产一区在线| 欧美高清你懂得| 亚洲曰本av电影| 中文在线不卡视频| 国产乱码精品一区二区三区忘忧草| 亚洲专区欧美专区| 久久精品理论片| 欧美影院一区| 亚洲高清123| 亚洲国产精品第一区二区| 免费观看国产成人| 亚洲精品久久久久久久久久久久 | 国内精品国产成人| 亚洲国产日韩欧美在线99| 欧美日本一区二区高清播放视频| 中文网丁香综合网| 亚洲男人的天堂在线观看 | 久久精精品视频| 亚洲三级国产| 久久成人人人人精品欧| 欧美一区二视频| 亚洲一区二区三区三| 国产日韩欧美一区| 欧美国产先锋| 欧美手机在线| 久久精品一区| 欧美精品在线观看91| 91久久综合| 欧美激情一区二区三区| 国产精品成人观看视频免费 | 欧美日韩精品不卡| 西西人体一区二区| 欧美激情精品久久久久久变态 | 亚洲国产一区视频| 在线视频精品一| …久久精品99久久香蕉国产| 日韩一二三区视频| 精品福利av| 一区二区三区视频观看| 在线精品国产欧美| 久久国产黑丝| 亚洲午夜激情免费视频| 久久婷婷av| 国产精品午夜国产小视频| 欧美激情第4页| 国产一区二区三区最好精华液| 国产日韩欧美在线| 亚洲欧洲日本专区| 欧美一区二区三区在线看| 日韩视频免费观看高清完整版| 欧美一区二区三区视频免费| 亚洲黄色影院| 欧美影院在线| 中文在线资源观看视频网站免费不卡| 免费在线看一区| 久久九九精品| 1024精品一区二区三区| 亚洲一区免费| 久久久欧美精品sm网站| 国产精品尤物福利片在线观看| 99re66热这里只有精品3直播| 亚洲青色在线| 欧美风情在线观看| 亚洲福利视频在线| 国产精品伦一区| 亚洲一区二区动漫| 在线观看成人小视频| 久久久久久久久久久久久女国产乱| 99在线精品视频| 国产欧美精品一区| 亚洲综合成人婷婷小说| 久热精品视频在线| 国内精品美女在线观看| 亚洲精品国产精品国自产观看浪潮| 在线高清一区| 欧美成人dvd在线视频| 欧美激情一区二区三区在线视频| 1024国产精品| 欧美精品成人| 亚洲欧美一区二区精品久久久| 亚洲欧美日韩综合国产aⅴ| 国语自产在线不卡| 久久免费国产精品| 亚洲国产精彩中文乱码av在线播放| 久久亚洲一区二区| 91久久精品国产91性色tv| av不卡在线| 国产精品久久久久久久久动漫 | 国产欧美日韩在线观看| 欧美在线|欧美| 久久久国产成人精品| 午夜精品成人在线视频| 好看的av在线不卡观看| 免费在线观看成人av| 美女福利精品视频| 亚洲一区二区三| 午夜精品理论片| 欧美一级黄色网| 国产精品亚洲一区二区三区在线| 亚洲欧美网站| 久久久久成人网| 一区二区三区 在线观看视| 欧美精品一区二区高清在线观看| 亚洲一区二区伦理| 亚洲欧美日韩国产成人| 日韩午夜在线播放| 国产丝袜一区二区| 国产精品一二一区| 亚洲综合色激情五月| 亚洲人成在线影院|