分配给shared_ptr,有办法吗?

时间:2012-01-11 13:36:27

标签: c++

有没有办法首先用nullptr初始化shared_ptr,并在一段时间后向它指向一个类的指针?

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

3 个答案:

答案 0 :(得分:8)

您在寻找ptr.reset( new MyClass )吗?

答案 1 :(得分:3)

使用shared_ptr::reset

std::shared_ptr<MyClass> ptr;

ptr.reset(new MyClass);

答案 2 :(得分:2)

可能没有调用reset那么高效,但这也应该有效。创建shared_ptr的内联临时实例并分配它。

std::shared_ptr<MyClass> ptr;

ptr = std::shared_ptr<MyClass>(new MyClass);