dor*_*mon 17 c++ shared-ptr weak-ptr c++11
您好我正在阅读本文档和其他一些关于C++的文档shared_ptr,他们似乎都建议除了shared_ptr指向已分配对象的数量之外,引用计数对象还必须跟踪weak_ptr指向该对象的指针数量.我的问题是为什么?根据我的理解,weak_ptr是非拥有的,因此如果shared_ptr指向对象的计数达到零,则可以删除该对象.这就是为什么有时我们需要使用expired来检查a指向的对象的可用性weak_ptr.你能解释一下需要跟踪weak_ptrs 数的原因吗?
Fra*_*eux 21
std::weak_ptr是指控制块知道对象是否仍然存在,如果是,std::shared_ptr则在需要时向其提供.因此,只要存在std::weak_ptr或std::shared_ptr存在,控制块就必须存在.你需要跟踪std::weak_ptr最后一个被销毁的实例数量,就像是std::shared_ptr.
该shared_ptr引用计数是对象的所有者的数量.所述weak_ptr引用计数是参考计数控制块的拥有者的计数.
| 归档时间: |
|
| 查看次数: |
1943 次 |
| 最近记录: |