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

posts - 23,  comments - 94,  trackbacks - 0
 1 #include <iostream>
 2 #include <boost/shared_ptr.hpp>
 3 #include <boost/enable_shared_from_this.hpp>
 4 
 5 using namespace std;
 6 
 7 class A : public boost::enable_shared_from_this<A>
 8 {
 9 public:
10     boost::shared_ptr<A> child_;
11     boost::shared_ptr<A> parent_;
12 
13     void add(boost::shared_ptr<A> child)
14     {
15         child_ = child;
16         child_->set(shared_from_this());
17     }
18 
19     void set(boost::shared_ptr<A> parent)
20     {
21         parent_ = parent;
22     }
23 };
24 
25 int main()
26 {
27     boost::shared_ptr<A> p1(new A);
28     boost::shared_ptr<A> p2(new A);
29 
30     p1->add(p2);
31 
32     cout<<p1<<endl;
33     cout<<p2<<endl;
34     cout<<p1->child_<<endl;
35     cout<<p2->parent_<<endl;
36     cout<<p1.use_count()<<endl;
37     cout<<p2.use_count()<<endl;
38 
39     return 0;
40 }

有了shared_from_this.. 我淚流滿面
之前不知道這個的時候..用了很愚蠢的做法

void add(shared_ptr<A> child)
    child_ = child;
    child_->set(shared_ptr<A>(this));
}
結果錯誤連連~ 然后放棄使用shared_ptr... 用raw_ptr...

順便推薦這本書
beyond_stl_cn.chm

放到了我的SVN上.. 一本很好的介紹Boost如何使用的書..

http://code.google.com/p/charlib/source/browse/trunk/Boost%20Book/Beyond_STL_cn.rar

進入頁面后點右下的 view raw file 就可以下載了

以上是早上寫的.. 寫好后很高興的發布了.. 但是后來發現上面這段程序非常的白癡
最關鍵的就在于,其實這上面的兩個shared_ptr已經循環引用了.. 再也沒有辦法自動解開
資源也就套死在了原地.. Oh My God... 居然愚蠢到這種地步..

然后才發現.. weak_ptr 一點都不weak.. 這里就需要用weak_ptr來處理!

換成下面這個...
#include <iostream>
#include 
<boost/shared_ptr.hpp>
#include 
<boost/weak_ptr.hpp>
#include 
<boost/enable_shared_from_this.hpp>

using namespace std;

class A : public boost::enable_shared_from_this<A>
{
public:
    A(
const int id) : id_(id) { cout<<id_<<" Constructed!"<<endl; }
    
~A() { cout<<id_<<" Destructed!"<<endl; }

    
int id_;
    boost::shared_ptr
<A> child_;
    boost::weak_ptr
<A> parent_;

    
void add(boost::shared_ptr<A> child)
    {
        child_ 
= child;
        child_
->set(shared_from_this());
    }

    
void set(boost::shared_ptr<A> parent)
    {
        parent_ 
= parent;
    }

    boost::shared_ptr
<A> get_parent()
    {
        
return parent_.lock();
    }
};

int main()
{
    boost::shared_ptr
<A> p1(new A(1));
    boost::shared_ptr
<A> p2(new A(2));

    p1
->add(p2);

    
return 0;
}

通過這個測試..
輸出的結果是
1 Construct
2 Construct
1 Destruct
2 Destruct

這樣的輸出并不奇怪. 因為 weak_ptr 是 shared_ptr 的觀察者,將 shared_ptr 傳給 weak_ptr 不會增加 shared_ptr的引用計數. 所以這里的操作, p2 的引用計數是2, p1 的引用計數是1, 所以p1是unique的,p1先析構,p2的引用計數-1,然后析構.

不過這里資源的析構順序可能不是我們關心的范圍,我這里認為把資源丟給智能指針這類物件管理后,主要是為了資源不泄漏,資源的析構順序如果在關心的范圍,也就該自己管理該資源了.

自己犯的一個低級錯誤,趕忙把帖子存草稿了. 現在弄清楚怎么處理后,才敢發上來,呵呵~ ^ ^

posted on 2009-03-12 19:20 Charlie 侯杰 閱讀(8977) 評論(4)  編輯 收藏 引用
by Charlie
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品久久91精品| 欧美一级二区| 欧美另类视频在线| 亚洲免费av网站| 亚洲久久视频| 欧美午夜久久久| 亚洲欧美日韩国产一区| 宅男噜噜噜66一区二区66| 国产精品视频导航| 久久久免费精品| 欧美jizz19性欧美| 国产精品99久久久久久www| 亚洲视频一二三| 午夜久久tv| 亚洲国产91精品在线观看| 亚洲精品久久在线| 欧美国产综合| 午夜一区不卡| 久久久久久久综合色一本| 99精品免费视频| 欧美一级免费视频| 看片网站欧美日韩| 日韩视频在线一区| 国产精品qvod| 亚洲激情视频网站| 亚洲少妇中出一区| 亚洲第一天堂av| 一本色道综合亚洲| 亚洲电影视频在线| 亚洲色诱最新| 亚洲精选在线观看| 久久gogo国模啪啪人体图| 日韩一区二区免费看| 久久成人免费视频| 中日韩男男gay无套| 久久久久久网址| 亚洲在线免费视频| 欧美福利视频一区| 久久野战av| 国产老女人精品毛片久久| 亚洲国产一区二区三区在线播| 国产精品magnet| 亚洲人www| 久久精品噜噜噜成人av农村| 亚洲欧美视频一区二区三区| 欧美阿v一级看视频| 久久综合伊人| 国产欧美一区二区精品性色| 99riav1国产精品视频| 亚洲国产日韩欧美在线图片| 久久成人精品| 欧美一区二区三区久久精品 | 午夜精品久久久久久久久 | 国产三级精品三级| 亚洲深夜av| 亚洲午夜久久久久久久久电影院 | 国产精品免费视频观看| 亚洲激情综合| 亚洲国产婷婷香蕉久久久久久| 欧美一区二区成人| 久久精品青青大伊人av| 国产精品综合不卡av| 亚洲午夜一级| 亚洲欧美在线看| 国产精品视频免费在线观看| 一区二区精品国产| 欧美激情中文字幕一区二区| 欧美高清在线一区二区| 精东粉嫩av免费一区二区三区| 久久av在线看| 蜜臀va亚洲va欧美va天堂| 亚洲第一区在线| 欧美成人精品三级在线观看| 亚洲国产精品成人精品| 亚洲免费精彩视频| 欧美日韩一区在线播放| 一区二区三区鲁丝不卡| 欧美一区二区三区免费在线看 | 欧美激情视频一区二区三区在线播放| 国内自拍视频一区二区三区 | 久久九九电影| 黄色欧美日韩| 欧美不卡视频| 日韩一级免费观看| 欧美专区在线观看一区| 激情久久中文字幕| 欧美国产视频在线观看| 在线天堂一区av电影| 久久精品一区二区三区中文字幕| 黄色av一区| 欧美日韩福利| 亚洲男人影院| 欧美高清在线一区| 午夜久久tv| 亚洲国产aⅴ天堂久久| 亚洲精品久久久久久久久久久久久| 中日韩视频在线观看| 国产日产欧美精品| 欧美成人免费全部观看天天性色| 9色精品在线| 美女主播精品视频一二三四| 99精品国产在热久久婷婷| 国产欧美亚洲视频| 欧美日韩八区| 久久精品一区二区| 99精品99久久久久久宅男| 久久精品中文字幕一区| 日韩视频中午一区| 9l国产精品久久久久麻豆| 久久综合久久综合久久综合| 国产精品久久一卡二卡| 久久蜜桃香蕉精品一区二区三区| 99ri日韩精品视频| 国产欧美日韩另类一区| 欧美伦理91i| 久久久噜噜噜久久久| 亚洲一区二区免费| 亚洲三级毛片| 牛牛精品成人免费视频| 欧美在线你懂的| 亚洲私人影吧| 日韩视频一区| **网站欧美大片在线观看| 国产欧美日本在线| 国产精品vvv| 欧美人成网站| 欧美激情成人在线| 另类尿喷潮videofree| 欧美一区免费视频| 午夜精品一区二区三区在线视 | 亚洲影院在线观看| 亚洲精选视频在线| 亚洲精品欧美日韩| 亚洲精品1区2区| 伊人成年综合电影网| 国产亚洲欧洲| 国产主播精品| 国产资源精品在线观看| 国产亚洲一区二区三区在线观看 | 欧美一级大片在线观看| 9久re热视频在线精品| 亚洲欧洲一区二区在线播放| 亚洲国产精品综合| 亚洲国产专区校园欧美| 亚洲第一色在线| 亚洲人成毛片在线播放| 欧美激情中文字幕一区二区| 欧美大片91| 欧美日本在线看| 欧美激情视频一区二区三区不卡| 欧美国产亚洲视频| 欧美三级免费| 国产精品美女久久久久av超清| 国产精品毛片va一区二区三区| 欧美日韩人人澡狠狠躁视频| 欧美日韩国产不卡| 欧美日韩一区在线播放| 欧美午夜无遮挡| 国产精品久久一区主播| 韩国一区电影| 久久久亚洲欧洲日产国码αv| 欧美制服丝袜| 欧美岛国激情| 欧美视频精品一区| 国产一级一区二区| 樱花yy私人影院亚洲| 亚洲精品久久久久久久久久久久久 | 老司机精品福利视频| 每日更新成人在线视频| 欧美黄色一级视频| 中文欧美日韩| 久久国产精品亚洲va麻豆| 久久亚洲色图| 免费在线日韩av| 一区二区三区回区在观看免费视频| 亚洲网站视频| 久久久久久9| 亚洲成人在线网站| 亚洲一区二区久久| 开心色5月久久精品| 国产精品一区二区欧美| 亚洲国产精品一区| 亚洲欧美日韩一区在线| 欧美大片国产精品| 亚洲一区二区视频在线| 免费观看一级特黄欧美大片| 欧美亚一区二区| 在线成人h网| aa亚洲婷婷| 蜜桃av噜噜一区| 亚洲视频福利| 欧美成人精品在线| 国产亚洲精品久久久久婷婷瑜伽| 亚洲精品少妇30p| 久久影视精品| 亚洲综合精品| 欧美性色综合| 一本色道88久久加勒比精品| 久久嫩草精品久久久精品一| 亚洲欧洲日本在线|