2012-01-11 63 views
4

是否有一种方法,首先用nullptr初始化shared_ptr,并在一段时间后指派一个指向它的类的指针?分配给shared_ptr,有没有办法做到这一点?

//pseudo code 
std::shared_ptr<MyClass> ptr(nullptr); 
//and later 
ptr->assign(new MyClass); 
+0

看看这个:http://codepad.org/1N84El9d – John 2012-01-11 14:14:03

回答

8

你是在找ptr.reset(new MyClass)

+0

它看起来像我做的;) – smallB 2012-01-11 13:40:25

2

也许并不那样有效调用复位,但是这也应该工作。创建shared_ptr的内联临时实例并分配它。

std::shared_ptr<MyClass> ptr; 

ptr = std::shared_ptr<MyClass>(new MyClass); 
相关问题