使用智能指针必须包含头文件:

程序举例:


无法释放的原因是因为出现了环形互引用:

为了解决这个问题,可以采用weak_ptr来隔断交叉引用中的回路;所谓weak_ptr,是一种弱引用,表示只是对某个对象的一个引用和使用,而不做管理工作;

改进方案:将一个类中的shard_ptr改为weak_ptr


本文探讨了在C++中使用智能指针时遇到的问题,特别是环形互引用导致的对象无法正常释放。通过引入weak_ptr的概念,有效地解决了这一难题。
使用智能指针必须包含头文件:

程序举例:


无法释放的原因是因为出现了环形互引用:

为了解决这个问题,可以采用weak_ptr来隔断交叉引用中的回路;所谓weak_ptr,是一种弱引用,表示只是对某个对象的一个引用和使用,而不做管理工作;

改进方案:将一个类中的shard_ptr改为weak_ptr


598
314
499
249

被折叠的 条评论
为什么被折叠?
