以下兩段代碼是否有區別?他們中的任何一個比另一個更可取?boost shared_ptr:operator =和reset之間的區別?
運營商=
boost::shared_ptr<Blah> foo; // foo.ptr should be NULL
foo = boost::shared_ptr<Blah>(new Blah()); // Involves creation and copy of a shared_ptr?
重置
boost::shared_ptr<Blah> foo; // foo.ptr should be NULL
foo.reset(new Blah()); // foo.ptr should point now to a new Blah object
注:我需要在不同的行定義的shared_ptr,然後設置它,因爲我在使用它一段代碼,如:
boost::shared_ptr<Blah> foo;
try
{
foo.reset...
}
foo...
http://www.boost.org/doc/libs/1_46_1/libs/smart_ptr/shared_ptr.htm#Members – DumbCoder 2011-03-18 12:20:28