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

eXile 的專欄

懸掛指針與boost::weak_ptr

   與內存泄露相比,C++最令人頭痛的問題是內存越界,而內存越界很多情況下是由于懸掛指針引起的。  
  假設一個指針變量:
  Object * ptr;
  使用ptr時,我們除了要判斷ptr是否為0以外,還要懷疑它指向的對象是否有效,是不是已經在別的地方被銷毀了。我們希望當它指向的對象被銷毀時,ptr被自動置為0。
  顯然,C++沒有這種機制,但是,可以借助于boost::weak_ptr做到這一點。

inline void null_deleter(void const *
{
}

class X
{
private:

    shared_ptr
<X> this_;
    
int i_;

public:

    
explicit X(int i): this_(this, &null_deleter), i_(i)
    {
    }

    X(X 
const & rhs): this_(this, &null_deleter), i_(rhs.i_)
    {
    }

    X 
& operator=(X const & rhs)
    {
        i_ 
= rhs.i_;
    }

    weak_ptr
<X> weak_this() const { return this_; }
};


 

定義變量:
weak_ptr<X> ptr = x.weak_this();  // x為一個X 對象 

則當 x 被銷毀時,ptr 被自動置為無效。使用方法如下:

if ( shard_ptr<X>  safePtr  = ptr.lock() )  safePtr->do_something();

這種辦法用于單線程中,因為 x  對象可能是基于棧分配的。如果需要在多線程中訪問X對象,那么最好的辦法還是使用shared_ptr 來管理對象的生命期。這樣的話,對于safePtr, 可以保證在 safePtr 的生命期內,它所指向的對象不會被其它線程刪除。

posted on 2007-10-11 11:49 eXile 閱讀(4585) 評論(3)  編輯 收藏 引用 所屬分類: C/C++代碼片段STL/BOOST

評論

# re: 懸掛指針與boost::weak_ptr 2007-10-11 12:33 夢在天涯

恩,lz的boost::smartptr很是了解,不過這樣看起來有點復雜,從shared到weak,最后又到shared,能不能直接使用weak_ptr,我還一直不太明白weak_ptr的真正用法,好像是觀察指針是否可用?  回復  更多評論   

# re: 懸掛指針與boost::weak_ptr[未登錄] 2007-10-11 13:47 exile

weak_ptr的主要目的是為了解決引用計數的循環引用問題
boost 出于線程安全的考慮,并沒有為weak_ptr提供->重載或get方法,所以不能直接使用, 還得轉化成shared_ptr  回復  更多評論   

# re: 懸掛指針與boost::weak_ptr 2011-07-26 09:25 harly.he

weak肯定得從share轉換而來。先有share后有weak,理由和講解可見 http://www.cnblogs.com/TianFang/archive/2008/09/20/1294590.html  回復  更多評論   

導航

<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

統計

常用鏈接

留言簿(18)

隨筆分類

隨筆檔案

服務器編程

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲电影第1页| 欧美日韩国产成人在线免费| 欧美日韩精品伦理作品在线免费观看 | 国产免费成人av| 久久蜜桃精品| 欧美国产日韩在线| av成人免费观看| 99综合视频| 国产精品综合色区在线观看| 久久国产乱子精品免费女| 欧美尤物一区| 亚洲国产日韩欧美在线99| 欧美激情一区二区三区蜜桃视频 | 免费在线观看日韩欧美| 亚洲欧洲三级电影| 亚洲日本中文| 艳女tv在线观看国产一区| 国产精品乱码一区二区三区| 久久久久久久久久看片| 美女网站在线免费欧美精品| 亚洲一区二区三区四区中文 | 午夜在线观看免费一区| 欧美大尺度在线| 欧美黄污视频| 欧美三级电影网| 亚洲制服欧美中文字幕中文字幕| 亚洲影院色在线观看免费| 国产欧美亚洲视频| 亚洲黄色在线视频| 国产精品萝li| 鲁大师成人一区二区三区| 欧美激情日韩| 久久久久久97三级| 久久久青草青青国产亚洲免观| 欧美在线观看一二区| 艳妇臀荡乳欲伦亚洲一区| 欧美一区二区三区四区高清| 在线视频欧美精品| 久久久夜夜夜| 99精品热视频| 国产三级精品在线不卡| 国产精品成人观看视频免费 | 国产一区二区三区av电影| 亚洲国产91精品在线观看| 国产精品亚洲美女av网站| 亚洲成色最大综合在线| 国产亚洲精品美女| 亚洲一区二区高清| 99re8这里有精品热视频免费| 最新国产の精品合集bt伙计| 在线视频日韩精品| 久久综合久久综合九色| 欧美午夜不卡| 夜夜狂射影院欧美极品| 91久久嫩草影院一区二区| 久久久7777| 久久免费少妇高潮久久精品99| 中文亚洲免费| 久久久久久穴| 欧美在线一区二区三区| 国产精品扒开腿做爽爽爽软件| 亚洲国产岛国毛片在线| 亚洲高清激情| 欧美.com| 亚洲人成毛片在线播放| 亚洲毛片在线观看| 欧美精品色综合| 日韩视频在线观看一区二区| 亚洲精品国产视频| 欧美极品在线播放| 99在线|亚洲一区二区| 中文一区在线| 欧美午夜久久| 亚洲视频在线观看免费| 欧美性开放视频| 中文国产成人精品| 午夜精品视频| 国产色视频一区| 亚洲区一区二| 午夜精品久久久久久久白皮肤| 日韩天堂在线观看| 国产精品一区视频网站| 亚洲欧美日韩中文视频| 久久全球大尺度高清视频| 娇妻被交换粗又大又硬视频欧美| 久久av资源网站| 欧美ab在线视频| 亚洲精品一区二区三区樱花| 欧美激情视频网站| 亚洲午夜在线| 久久久噜噜噜久久狠狠50岁| 极品中文字幕一区| 欧美老女人xx| 亚洲女优在线| 一区三区视频| 欧美日韩卡一卡二| 亚洲一区二区三区免费观看| 欧美一区二区视频在线观看| 国内精品伊人久久久久av一坑 | 中文在线不卡| 亚洲成人在线免费| 日韩视频免费观看高清完整版| 蜜臀va亚洲va欧美va天堂| 欧美国产在线电影| 亚洲一区日韩在线| 在线观看三级视频欧美| 欧美巨乳波霸| 欧美成人在线网站| 欧美精品播放| 亚洲一区二区毛片| 欧美肥婆在线| 亚洲欧美视频在线观看视频| 在线观看三级视频欧美| 欧美日韩在线播放一区二区| 欧美精品国产精品| 欧美一区二区三区四区高清| 亚洲国产福利在线| 可以免费看不卡的av网站| 亚洲日本国产| 久久久精品动漫| 亚洲自拍电影| 亚洲精选大片| 亚洲国产欧美日韩另类综合| 国产日产高清欧美一区二区三区| 欧美精品成人一区二区在线观看| 亚洲综合激情| 一区二区黄色| 亚洲精品美女| 欧美成人免费一级人片100| 亚洲桃色在线一区| 亚洲精品久久久久久下一站| 亚洲一区二区三区免费在线观看| 亚洲国产三级| 亚洲第一二三四五区| 久久精品色图| 久久国产日本精品| 亚洲精选一区二区| 夜夜爽99久久国产综合精品女不卡| 在线观看一区| 在线观看欧美| 久久资源av| 狠狠88综合久久久久综合网| 国产精品私房写真福利视频| 欧美体内谢she精2性欧美| 欧美1区2区3区| 浪潮色综合久久天堂| 久久久久久免费| 久久色在线观看| 久久嫩草精品久久久精品一| 久久精品99久久香蕉国产色戒| 午夜久久电影网| 欧美在线网站| 久久精品首页| 久久午夜精品一区二区| 久久久久久综合| 欧美wwwwww| 亚洲激情av| 中文在线资源观看视频网站免费不卡| 日韩一级精品| 午夜一区在线| 久久久久久久一区| 欧美国内亚洲| 欧美日韩在线三级| 亚洲性感激情| 中日韩美女免费视频网站在线观看| 制服丝袜激情欧洲亚洲| 亚洲欧美激情视频| 欧美在线一级va免费观看| 久久一区免费| 亚洲电影中文字幕| 日韩视频专区| 亚洲一区二区三区中文字幕 | 免费亚洲电影在线观看| 欧美xx视频| 亚洲日韩成人| 亚洲免费视频观看| 噜噜噜91成人网| 国产精品久久久久久久久久尿| 国精品一区二区| 在线视频中文亚洲| 国产性色一区二区| 亚洲黄页一区| 亚洲欧美在线视频观看| 欧美激情2020午夜免费观看| 一本一本a久久| 久久久国产精品一区| 欧美大秀在线观看| 牛夜精品久久久久久久99黑人| 性一交一乱一区二区洋洋av| 欧美va亚洲va香蕉在线| 一本色道久久加勒比精品| 久久久久国产精品一区三寸| 欧美性事在线| 亚洲日本激情| 久久久午夜电影| 一区二区三区视频在线看| 蜜桃视频一区| 国产一区二区三区四区老人| 日韩一区二区精品在线观看| 久久久国产一区二区|