【问题标题】:Query related to assigning an address to a shared_ptr与将地址分配给 shared_ptr 相关的查询
【发布时间】:2014-02-03 10:06:48
【问题描述】:

我已经读过,如果我们想将 shared_ptr 分配给一个已经存在的对象地址,那么我们需要定义一个空的自定义删除器,这样就不会试图从堆中删除它。我的问题是,如果我们有一个使用 new 分配的 shared_ptr 对象和另一个使用地址的 shared_ptr 对象,释放堆内存和维护引用计数等会有什么问题吗?

some_class a;
shared_ptr<some_class> b(&a, custom_deleter);

shared_ptr<some_class> c(new some_class());

【问题讨论】:

    标签: c++ shared-ptr


    【解决方案1】:

    那些shared_ptrs 是完全独立的。它们都管理不同的对象,并将为这些对象使用适当的删除器,因此这样做没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多