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

隨筆-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 閱讀(2241) 評論(1)  編輯 收藏 引用

評論:
# re: 輕量級基於引用計數的智能指針類 2013-06-19 10:03 |
解開了我心中關于weak_ptr的疑惑,謝謝。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美影视一区| 亚洲美女福利视频网站| 午夜精彩视频在线观看不卡 | 欧美日韩国产成人在线| 亚洲一区二区三区在线看| 亚洲一区二区精品在线观看| 国产精品一二一区| 美女视频黄免费的久久| 欧美99在线视频观看| 久久中文久久字幕| 欧美福利一区二区三区| 亚洲深夜激情| 亚洲一区二区三区免费观看| 国产亚洲成av人在线观看导航| 免费中文字幕日韩欧美| 欧美激情中文字幕一区二区| 亚洲欧美视频在线| 久久久999成人| 这里只有精品在线播放| 久久成人av少妇免费| 亚洲精品少妇30p| 亚洲免费视频在线观看| 亚洲国产婷婷香蕉久久久久久99 | 久久久久久久尹人综合网亚洲| 久久一二三四| 欧美一级视频免费在线观看| 免费毛片一区二区三区久久久| 亚洲一级片在线观看| 久久久久久久一区二区三区| 一本色道久久综合狠狠躁篇的优点| 亚洲欧美日韩国产一区二区| 亚洲精品资源| 久久精品99国产精品酒店日本| 一区二区日韩欧美| 久久人人爽人人爽| 午夜日韩在线| 欧美日韩麻豆| 亚洲国产精品一区二区www在线| 国产伦一区二区三区色一情| 亚洲国产一成人久久精品| 国产原创一区二区| 一区二区三区波多野结衣在线观看| 伊人天天综合| 亚洲伊人久久综合| 夜色激情一区二区| 欧美freesex8一10精品| 久久综合久色欧美综合狠狠| 国产精品久久久久99| 日韩视频在线观看国产| 亚洲精品一区二区三区四区高清 | 亚洲欧美日韩国产一区二区| 亚洲乱码国产乱码精品精可以看 | 午夜精品99久久免费| 亚洲欧洲日本一区二区三区| 久久国内精品自在自线400部| 亚洲欧美日韩一区二区三区在线观看 | 久久一区精品| 鲁大师影院一区二区三区| 国产亚洲激情在线| 亚洲欧美制服中文字幕| 久久综合网hezyo| 在线观看免费视频综合| 亚洲男人第一网站| 99精品视频一区二区三区| 亚洲韩国日本中文字幕| 亚洲国产精品传媒在线观看| 久久免费99精品久久久久久| 久久婷婷久久| 亚洲成在人线av| 欧美1区3d| 亚洲欧洲精品一区二区| 亚洲视频精品在线| 国产精品国产三级国产普通话99| 亚洲一区二区三区精品动漫| 亚洲曰本av电影| 国产精品日韩欧美一区二区三区| 午夜精品久久久久影视| 久久亚洲春色中文字幕久久久| 樱桃视频在线观看一区| 欧美成人性网| 亚洲视频专区在线| 久久精品夜色噜噜亚洲a∨| 国产在线不卡| 久久米奇亚洲| 欧美日韩国产成人在线观看 | 影音先锋一区| 免费看av成人| 一区二区三区导航| 欧美在线观看一区二区三区| 狠狠色狠色综合曰曰| 免费在线亚洲| 亚洲欧美日本国产专区一区| 猛男gaygay欧美视频| 日韩亚洲国产欧美| 国产欧亚日韩视频| 欧美搞黄网站| 亚洲欧美综合一区| 亚洲国产综合91精品麻豆| 午夜免费日韩视频| 亚洲黄色免费| 国产模特精品视频久久久久| 免费成人在线观看视频| 亚洲一区影音先锋| 欧美激情黄色片| 性欧美大战久久久久久久免费观看 | 亚洲欧美日韩精品久久亚洲区| 久久久夜精品| 一区二区久久久久| 精品动漫一区| 国产精品国产三级国产普通话蜜臀| 久久久久九九九| 亚洲午夜三级在线| 亚洲国产女人aaa毛片在线| 久久精品在线| 亚洲一区不卡| 日韩特黄影片| 在线观看不卡| 国产一区二区激情| 欧美色一级片| 欧美日韩国产精品成人| 蜜桃久久精品乱码一区二区| 欧美一区二区三区四区夜夜大片 | 91久久国产综合久久| 欧美激情自拍| 在线一区二区三区做爰视频网站| 免费观看不卡av| 午夜精品免费视频| 亚洲桃色在线一区| 日韩视频在线观看免费| 亚洲激情在线播放| 伊人夜夜躁av伊人久久| 狠狠色综合网| 国产无遮挡一区二区三区毛片日本| 欧美日韩网址| 欧美精品v日韩精品v韩国精品v | 欧美在线国产| 亚洲综合视频网| 亚洲午夜一区二区| 亚洲香蕉网站| 亚洲一二三区在线观看| 亚洲视频图片小说| 亚洲天堂av图片| 亚洲午夜久久久| 亚洲欧美色一区| 亚洲国产精品成人一区二区| 欧美日韩一区不卡| 国产精品激情av在线播放| 欧美福利视频在线观看| 免费久久精品视频| 欧美激情国产日韩| 欧美日韩天堂| 国产精品一级久久久| 国产色产综合产在线视频| 国产毛片精品国产一区二区三区| 国产欧美1区2区3区| 国语自产精品视频在线看| 亚洲第一综合天堂另类专| 亚洲国产成人精品女人久久久| 日韩视频欧美视频| 亚洲午夜av| 久久精品一本久久99精品| 欧美18av| 一本色道久久加勒比88综合| 亚洲欧美日韩一区二区| 久久婷婷国产综合国色天香| 欧美高清不卡在线| 欧美午夜视频在线| 国内精品**久久毛片app| 91久久国产自产拍夜夜嗨| 亚洲一区二区三区成人在线视频精品| 欧美一进一出视频| 免费视频最近日韩| 一区二区三区国产精品| 久久福利毛片| 欧美日韩国产bt| 狠狠色综合网站久久久久久久| 亚洲精品欧美| 久久精品在线免费观看| 亚洲欧洲精品一区二区三区| 亚洲欧美美女| 欧美激情精品久久久六区热门| 国产精品美女主播在线观看纯欲| 亚洲福利视频网站| 亚洲你懂的在线视频| 欧美成人一区二区三区在线观看| 9i看片成人免费高清| 久久久五月天| 国产欧美不卡| 亚洲午夜日本在线观看| 女女同性精品视频| 午夜精品久久久久久| 欧美区日韩区| 国语自产精品视频在线看抢先版结局| 亚洲午夜国产成人av电影男同| 欧美ab在线视频| 欧美一区中文字幕| 国产精品一区二区三区观看| 亚洲理论电影网| 嫩草影视亚洲| 久久精品中文|