为什么要在C++中将智能指针作为函数参数传递?

unj*_*nj2 4 c++ pointers function smart-pointers

我是C++智能指针的新手,我很难理解这个关于将它们用于函数参数的建议.

"C++编码标准:101规则,指南和最佳实践"说这些是传递智能指针的原因.

喜欢通过(智能)指针

  • 如果参数是可选的(因此调用者可以将null作为"不可用"或"不关心"值传递)
  • 或者如果函数存储指针的副本
  • 或以其他方式操纵论证的所有权.

有人可以给我一些他们每个人的例子,为什么不使用智能指针在案件中是个坏主意?

Rob*_*obᵩ 7

喜欢路过(智能)指针 [当......]

我认为你误读了编码标准.您将其读作"这些是使用智能指针的原因".作者的意图是"这些是使用某种指针的原因,这可能是一个智能指针."