auto_ptr

 
應該這麼用auto_ptr
#include <memory>
auto_ptr<TestClass> ap(new TestClass);//注意這裏是調用的構造函數,不是=重載符
ap->Func();
或者
TestClass* p = new TestClass;
auto_ptr<TestClass) ap(p);
ap->Func();
 
千萬不能這麼用:
auto_ptr<TestClass> ap = new TestClass;//注意這裏是=重載符
ap->Func()
 
箇中緣由,主要是要完成由new TestClassauto_ptr<TestClass>的轉換,auto_ptr沒有這樣的直接=重載,它誤用auto_ptr_ref來完成這個轉換,會形成錯誤。auto_ptr_ref設計的本意本不是這個。
相關文章
相關標籤/搜索