我有一个函数定义如下:voidfoo(std::shared_ptrx){...};如果我向X声明一个共享ptr:std::shared_ptrsourcePtr(newX(...));然后我可以调用foo如下:foo(std::move(sourcePtr));或foo(sourcePtr);我知道如果我使用第一个选项,那么sourcePtr将变为null。它是否也阻止了引用计数的增加?如果没关系,我应该更喜欢哪个选项?在做出这样的决定时,我是否应该考虑其他任何事情? 最佳答案 是的,如果将共享指针move到函数中,那么:原来的s