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

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 侯杰 閱讀(8986) 評論(4)  編輯 收藏 引用

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


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>
            99在线热播精品免费99热| 中文亚洲视频在线| 欧美剧在线观看| 欧美不卡福利| 欧美日韩三区| 国产欧美日韩精品a在线观看| 国产精品久久久久久久一区探花| 欧美日韩亚洲国产精品| 国产精品亚洲产品| 尤物在线观看一区| 在线一区二区视频| 久久成人精品| 亚洲国产精品悠悠久久琪琪| 亚洲高清视频的网址| 亚洲国产导航| 亚洲在线视频网站| 久久久亚洲综合| 亚洲人成在线免费观看| 亚洲欧美国产高清| 欧美精品成人一区二区在线观看| 国产精品久久久久9999| 亚洲第一页中文字幕| 一本色道久久| 欧美电影打屁股sp| 亚洲欧美日韩国产综合在线| 欧美jizz19hd性欧美| 国产美女扒开尿口久久久| 亚洲日韩第九十九页| 性欧美精品高清| 亚洲欧洲午夜| 免费不卡欧美自拍视频| 国产麻豆精品theporn| 日韩一级在线观看| 久久人人爽人人爽| 亚洲无玛一区| 麻豆91精品91久久久的内涵| 国产精品婷婷午夜在线观看| 亚洲免费观看在线观看| 免费成人黄色av| 欧美一区二区三区婷婷月色| 国产精品v欧美精品v日本精品动漫| 亚洲第一搞黄网站| 老司机久久99久久精品播放免费| 亚洲性线免费观看视频成熟| 欧美精品国产精品日韩精品| 亚洲国产成人在线播放| 久久久xxx| 亚洲女同在线| 国产欧美日韩精品a在线观看| 亚洲女同精品视频| 一区二区动漫| 国产精品sss| 一本色道久久| 一区二区国产精品| 欧美视频国产精品| 亚洲一区二区成人在线观看| 亚洲国产成人午夜在线一区| 免费h精品视频在线播放| 亚洲国产91| 亚洲福利在线观看| 欧美不卡激情三级在线观看| 亚洲国产一区二区a毛片| 欧美成人午夜免费视在线看片| 久久久一区二区三区| 黄色精品免费| 欧美激情女人20p| 欧美高清成人| 9人人澡人人爽人人精品| 亚洲高清色综合| 欧美精品一区视频| 亚洲天堂激情| 午夜免费久久久久| 亚洲国产精品999| 中文日韩在线视频| 久久久综合网站| 91久久精品国产91性色tv| 亚洲成色777777女色窝| 欧美精品一区二区精品网 | 裸体歌舞表演一区二区| 久久精品视频免费播放| 亚洲电影av| 99精品99久久久久久宅男| 国产精品电影网站| 久久久亚洲午夜电影| 另类av导航| 亚洲小视频在线观看| 久久九九免费视频| 中文在线一区| 麻豆成人av| 欧美一区二区三区男人的天堂| 裸体歌舞表演一区二区| 亚洲欧美在线免费| 欧美国产视频一区二区| 欧美一区国产一区| 欧美精品久久99久久在免费线| 亚久久调教视频| 欧美精品在线一区| 卡通动漫国产精品| 国产精品综合| 亚洲精品视频免费观看| 国产资源精品在线观看| 99精品国产在热久久| 在线观看欧美激情| 亚洲综合欧美日韩| 亚洲另类自拍| 久久久久久日产精品| 亚洲欧美日产图| 欧美1区免费| 久久漫画官网| 国产乱码精品1区2区3区| 亚洲人在线视频| 伊人狠狠色j香婷婷综合| 亚洲视频欧洲视频| 一区二区av| 欧美成人高清视频| 免费观看不卡av| 亚洲高清网站| 国产一区二区三区的电影 | 欧美日韩亚洲另类| 亚洲春色另类小说| 韩国一区二区三区在线观看| 亚洲性av在线| 亚洲一本大道在线| 欧美日韩一卡| 日韩一区二区免费高清| 亚洲精品在线看| 久久一本综合频道| 久久在精品线影院精品国产| 国产一区二区三区观看| 欧美理论在线播放| 亚洲精品一区二区网址| 欧美一区二区成人6969| 亚洲影视九九影院在线观看| 欧美大尺度在线观看| 欧美激情国产精品| 亚洲第一毛片| 久久夜色精品国产欧美乱极品| 久久久综合精品| 黄色成人在线观看| 免费欧美日韩国产三级电影| 亚洲国产毛片完整版| 亚洲免费久久| 国产精品嫩草久久久久| 亚洲欧美综合一区| 老司机精品视频网站| 亚洲激情一区| 欧美精品三级| 亚洲在线一区二区| 久久久精品动漫| 在线欧美视频| 欧美精品在欧美一区二区少妇| 亚洲伦伦在线| 性一交一乱一区二区洋洋av| 国产一区二区三区网站| 久久婷婷亚洲| 99精品视频网| 久久人人超碰| 亚洲视频999| 国产亚洲成精品久久| 六十路精品视频| 一本色道久久88综合日韩精品| 久久九九全国免费精品观看| 亚洲高清视频的网址| 欧美日韩在线看| 久久国产精品久久精品国产 | 国产免费亚洲高清| 久久久精品一区二区三区| 欧美黑人多人双交| 亚洲综合色丁香婷婷六月图片| 国产一区二区三区四区三区四| 欧美激情一区| 欧美一区二区三区四区视频 | 久久亚洲精品网站| 亚洲老司机av| 久久久99精品免费观看不卡| 亚洲日本乱码在线观看| 国产精品久久久久久影视| 久久琪琪电影院| 亚洲欧美激情视频在线观看一区二区三区| 久久亚洲综合网| 亚洲欧美日韩天堂| 最新成人av网站| 国产在线视频不卡二| 欧美日韩国产综合网| 久久免费国产精品| 亚洲主播在线| 亚洲九九爱视频| 亚洲国产乱码最新视频| 蜜月aⅴ免费一区二区三区 | 99pao成人国产永久免费视频| 久久久久久尹人网香蕉| 亚洲女爱视频在线| 日韩午夜三级在线| 影院欧美亚洲| 国产色爱av资源综合区| 国产精品爱啪在线线免费观看| 欧美电影免费| 老司机成人在线视频| 久久久久一区二区三区| 亚洲调教视频在线观看|