与将地址分配给shared_ptr相关的查询

时间:2014-02-03 10:06:48

标签: c++ shared-ptr

我已经读过,如果我们想将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());

1 个答案:

答案 0 :(得分:0)

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