从本地原始指针初始化std :: unique_ptr是否安全?

问题描述 投票:0回答:1

我知道用std::shared_ptr这样做是不明智的。但是std::unique_ptr怎么样?例如。 :

class A {
 public:
  void do_something() { };
};

std::vector<std::unique_ptr<A> > uq_ptrs_;
auto p = new A();
uq_ptrs_.push_back(std::unique_ptr<A>(p));
p->do_something();
c++11 smart-pointers unique-ptr
1个回答
2
投票

只要你在创建delete(或std::unique_ptr!)对象后没有手动std::shared_ptr对象,那么它没关系。

一旦你要求p(或std::unique_ptr)取得它的所有权,你也应该避免取消引用指针std::shared_ptr。而是使用智能指针对象。

© www.soinside.com 2019 - 2024. All rights reserved.