【发布时间】:2013-04-24 05:51:22
【问题描述】:
来自 boost::shared_ptr 的 boost 文档:
由于实现使用引用计数,循环 shared_ptr 实例不会被回收。例如,如果 main() 持有一个 shared_ptr 到 A,它直接或间接持有一个 shared_ptr 回到 A,A 的使用计数将是 2。销毁 original shared_ptr 将留下 A 悬空,使用计数为 1。使用 weak_ptr 来“打破循环”。
我无法理解这一段,您能否提供一个关于这种情况的最小示例并解释其后果。
【问题讨论】:
标签: boost shared-ptr smart-pointers cycle weak-ptr