日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

boost::shared_ptr shared_from_this

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boost::shared_ptr shared_from_this 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需要將指針再構造為一個shared_ptr時, 可以讓類繼承自enable_shared_from_this; 然后類內部使用shared_from_this()生成一個shared_ptr。


不能直接將this構造為一個shared_ptr,因為有可能其他的shared_ptr已經包含了this; 這種情況下, 相當于使用raw pointer構造了多個shared_ptr、 會多次釋放。

P *p = new P;

shared_ptr p1(p);

shared_ptr p2(p);

error。。。。會導致p被多次delete。



http://www.cnblogs.com/lzjsky/archive/2011/05/05/2037363.html

http://blog.csdn.net/salutlu/article/details/12515877

http://www.cnblogs.com/livingintruth/archive/2012/03/05/2367253.html

http://hi.baidu.com/cpuramdisk/item/7c2f8d77385e0f29d7a89cf0


我在寫asio過程中, 基本上都碰到過了。

1)? 同時也解釋了在構造函數中不能調用shared_from_this()的錯誤,我寫asio程序時想在構造中發起異步connect,結果運行出錯。。。 無意中招。

2)? 定義在棧上的對象、或者沒有使用shared_ptr管理的raw pointer, 無需繼承自enable_shared_from_this、不能調用shared_from_this。



asio::async_read(socket,...)

socket.async_read_some

兩者區別:

asio::async_read填充滿buffer或者符合指定條件才返回

socket.async_read_some讀到數據就返回。

from http://blog.csdn.net/hbhhww/article/details/7469923

總結

以上是生活随笔為你收集整理的boost::shared_ptr shared_from_this的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。