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_ptr
s 数的原因吗?
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 次 |
最近记录: |