有没有办法首先用nullptr初始化shared_ptr,并在一段时间后向它指向一个类的指针?
//pseudo code
std::shared_ptr<MyClass> ptr(nullptr);
//and later
ptr->assign(new MyClass);
答案 0 :(得分:8)
您在寻找ptr.reset( new MyClass )
吗?
答案 1 :(得分:3)
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);