• <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>

            focus on linux, c/c++, lua

            用一段共享內(nèi)存來實現(xiàn)共享指針

            看了vczh的共享指針的實現(xiàn),我大概理解為 用一段共享內(nèi)存來實現(xiàn)一切。這一段共享內(nèi)存包含的內(nèi)容包括:
            1,真正的數(shù)據(jù)
            2,4個字節(jié)的引用計數(shù)
            任何指向這段共享內(nèi)存的指針都有權(quán)利修改這段內(nèi)存的內(nèi)容,比如
            1,當有新指針指向這塊內(nèi)存的時候,如拷貝構(gòu)造函數(shù),或是被右值賦值的函數(shù)operator =,新的對象都應(yīng)該去把
            共享內(nèi)存中引用計數(shù)加1。注意這里右值被拷貝過來的時候,this是能操作這塊共享內(nèi)存的,所以計數(shù)的加減都
            很容易操作的。
            2,在當前的指針逃脫這塊共享內(nèi)存的時候,要把這里的引用計數(shù)減1,當減到0的時候,釋放所有的內(nèi)存。所以operator=
            應(yīng)該是先減去現(xiàn)在的引用計數(shù),再增加新的引用計數(shù)
            大概的結(jié)構(gòu)如下:
            class share_ptr
            {
                T* pSharedData;
                int* pSharedCnt;
            };

            vczh的文章在這里http://www.shnenglu.com/vczh/archive/2010/06/24/118635.html

            posted on 2010-06-25 15:35 zuhd 閱讀(1610) 評論(0)  編輯 收藏 引用 所屬分類: c/c++

            国内精品人妻无码久久久影院| 久久精品男人影院| 久久精品一区二区三区AV| 久久99精品久久久久久hb无码| 久久久久亚洲AV无码专区体验| 精品国产一区二区三区久久蜜臀| 久久久久免费精品国产| 久久国产精品成人片免费| 久久国产乱子伦精品免费强| 免费精品久久久久久中文字幕| 97久久精品人妻人人搡人人玩| 三级三级久久三级久久| 久久久久亚洲AV无码专区网站 | 亚洲日本va中文字幕久久| 久久久WWW免费人成精品| 色偷偷888欧美精品久久久| 久久久久亚洲AV片无码下载蜜桃| 国内精品久久久久久久久电影网 | 久久久久久人妻无码| 久久精品国产亚洲Aⅴ香蕉| 久久精品无码专区免费青青| 性高朝久久久久久久久久| 热久久国产欧美一区二区精品 | 99久久精品费精品国产一区二区| 一本色综合久久| 精品国产乱码久久久久软件| 久久这里只有精品首页| 少妇人妻88久久中文字幕| www性久久久com| 久久久久久毛片免费播放| 亚洲狠狠婷婷综合久久蜜芽| 久久频这里精品99香蕉久| 亚洲精品无码久久久久去q | 狠狠色丁香婷婷综合久久来| 久久中文骚妇内射| 国产精品激情综合久久| 日本高清无卡码一区二区久久| 一本大道久久a久久精品综合| 久久精品免费网站网| 国产福利电影一区二区三区久久老子无码午夜伦不 | 狠狠色婷婷久久一区二区三区|