理解弱参考计数器

Tra*_*cer 5 c++ smart-pointers c++11

创建shared_ptr时,它的管理器对象使用强弱引用计数器.我明白通过使用强引用计数器shared_ptr知道何时解除分配托管对象但我不明白为什么它使用弱引用计数器.

nos*_*sid 9

有两个与shared_ptr<T>&相关的对象weak_ptr<T>:

  • 实际对象(T)
  • 控制块,包含共享和弱计数器

如果共享计数器到达,则实际对象将被销毁0.但是只要存在共享弱指针,控制块就必须保持活动状态,即只要共享弱计数器都被删除,控制块就会被删除0.