【发布时间】:2017-01-04 05:02:12
【问题描述】:
遇到shared_ptr的一个问题,好像要初始化一个空的shared_ptr,引用std::shared_ptr: reset() vs. assignment有两种常用的方法
T {
T(X x, Y y);
~T();
}
shared_ptr<T> p;
p.reset(new T(x,y));
p = make_shared<T>(t1) //t1 is a T type object
但是,为什么这不起作用?
p = shared_ptr<T>(new T(x,y));
这只是一种不好的做法还是完全错误?谢谢!
有回答说make_shared在构造方面比new效率更高Is make_shared really more efficient than new?:
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); //copy??
std::shared_ptr<Object> p2(new Object("foo")); //conversion?
【问题讨论】:
标签: c++ c++11 shared-ptr