【发布时间】:2014-04-09 09:35:40
【问题描述】:
我刚刚开始使用boost::shared_ptr,所以我搜索了一下,发现有几种初始化它的方法:
boost::shared_ptr<MyClass> myclass = boost::shared_ptr<MyClass>(new MyClass());
boost::shared_ptr<MyClass> myclass = new MyClass();
boost::shared_ptr<MyClass> myclass = boost::make_shared<MyClass>();
并分配它:
boost::shared_ptr<MyClass> someOtherType::getMyClass();
boost::shared_ptr<MyClass> myclass = someOtherTypePointer->getMyClass();
boost::shared_ptr<MyClass> myclass = boost::make_shared<MyClass>(someOtherTypePointer->getMyClass());
哪个是初始化/分配的首选方式,为什么?
谢谢。
【问题讨论】:
-
您应该更正示例:
class是保留关键字: -
你的赋值示例并不是真正的赋值(它是复制初始化)
标签: c++ boost initialization shared-ptr