【发布时间】:2015-05-26 09:51:56
【问题描述】:
我目前有一个shared_ptr,它的use_count() 为1,因此我希望shared_ptr 会自动销毁(无需调用reset())但是这不会发生。
我的问题是我在这里遗漏了什么吗?是否有任何情况导致shared_ptr 不被销毁?
我的一些类是 GUI 类,它们不包含构造函数或析构函数,并且具有 Init() 和 Shutdown() 函数。对于这种类型的类,shared_ptr 似乎不会被自动销毁。
谢谢,
【问题讨论】:
-
A
shared_ptr在use_count()达到 0 时被销毁(这是唯一的shared_ptr超出范围) -
@Xaqq 但是如果
use_count()是1,那么当shared_ptr超出范围时,use_count()应该是0,然后应该调用析构函数等等...跨度> -
代码 sn-p 怎么样,以便我们发现任何微妙之处?
-
@ShamariCampbell 是的,这正是应该发生的事情。
标签: c++ shared-ptr