这是正确的方法吗?
void helperFunc(MyClass *ptr)
{
// do something with ptr,
}
unique_ptr<MyClass> p(new MyClass());
helperFunc(p.get());
或者我应该使用 shared_ptr 进行此类操作吗?
最佳答案
除非你想获得内存的所有权(在这种情况下你应该传递 shared_ptr
或 unique_ptr
),你为什么要使用指针?
通过引用传递。
void helperFunc(MyClass& obj)
{
// do something with ptr,
}
unique_ptr<MyClass> p(new MyClass());
helperFunc(*p);
当您不想获得所有权时使用原始指针通常是好的,但在这里没有必要,除非您明确想要允许 nullptr
(在这种情况下,是的,使用原始指针) .
关于c++ - 将 std::unique_ptr 传递给辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14644351/