क्या नीचे दिए गए कोड के दो टुकड़ों के बीच कोई अंतर है? क्या उनमें से कोई दूसरे के लिए बेहतर है?बूस्ट shared_ptr: ऑपरेटर = और रीसेट के बीच अंतर?
ऑपरेटर =
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