根据 https://www.youtube.com/watch?v=LFv7XwgsdLY&t=1620s 25:40
class Foo
应该以两种方式返回:
- 如果
if(condition)
return foo1
else
return foo2;
- 带条件表达式
return condition ? food(foo1) : std::move(foo2);
如果 Foo
是一个 unique_ptr
并且我想检查 Foo
是否不是 nullptr 然后返回 foo
如果它是一个 nullptr,则返回 nullptr
。让我们暂时忘记有人可能想要删除该指针。
哪种方式合适?
Foo* getFoo()
{
//get because foo is a unique ptr
return foo ? foo.get() : nullptr;
}
Foo* getFoo()
{
return foo ? std::move(foo.get()) : nullptr;
}
最佳答案
关于c++ - 如何使用条件表达式返回对象指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58838172/