Re: [問題] shared_ptr如何避免cyclic reference?
就算是Garbage collector來也一樣不能解
有問題的設計就是有問題
程式語言的工具只是減輕寫程式的人負擔 並不會解決任何問題
你個問題就好比寫了一個暴力演算法 問std::algorithm能不能加速到O(1)
※ 引述《eye5002003 (下一夜)》之銘言:
: 可以自由傳遞指標的 std::shared_ptr 比傳統指標要安全許多
: 但即使如此也還是有cyclic reference的問題存在
: 網路上查到的解法幾乎都用 weak_ptr 來處理
: 但是我怎麼看都不覺得這算解法
: 因為它無法阻止物件被釋放
: 之所以要使用 std::shared_ptr 就是希望抓著指標就一定能使用所指的物件
: 我自己目前的做法是對物件分層級
: 只有高層物件可以擁有指標指向下層物件
: 確保不會連成一圈
: 這方式我還沒看到明顯的問題
: 但是這種自我約束的行為還是很不可靠
: 一個不小心包成std::function之類的東西然後亂丟可能就發生
: 而且一旦出現cyclic也很難查覺
: 因為它就只是安靜的咬著記憶體不放
: 不知道有沒有更理想的處理方式?
: 或者有比 shared_ptr 更好的工具也可以介紹一下
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.138.159 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1560778653.A.298.html
→
06/18 08:42,
5年前
, 1F
06/18 08:42, 1F
→
06/18 08:42,
5年前
, 2F
06/18 08:42, 2F
→
06/18 08:42,
5年前
, 3F
06/18 08:42, 3F
推
06/18 11:08,
5年前
, 4F
06/18 11:08, 4F
→
06/18 11:23,
5年前
, 5F
06/18 11:23, 5F
→
06/18 11:23,
5年前
, 6F
06/18 11:23, 6F
推
06/18 16:30,
4年前
, 7F
06/18 16:30, 7F
推
06/18 16:48,
4年前
, 8F
06/18 16:48, 8F
→
06/18 16:48,
4年前
, 9F
06/18 16:48, 9F
→
06/18 22:23,
4年前
, 10F
06/18 22:23, 10F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):