【发布时间】:2016-05-17 12:00:15
【问题描述】:
所以在使用shared_ptr<Type>时可以这样写:
shared_ptr<Type> var(new Type());
我想知道为什么他们不允许更简单更好的 (imo):
shared_ptr<Type> var = new Type();
你需要使用.reset()来实现这样的功能:
shared_ptr<Type> var;
var.reset(new Type());
我习惯了 OpenCV Ptr 类,它是一个智能指针,允许直接赋值并且一切正常
【问题讨论】:
-
因为
std::shared_ptr的构造函数取指针是explicit,没有operator=取指针。 -
这不是作业。
标签: c++ c++11 shared-ptr smart-pointers