当我需要通过指针传递(而不是通过引用)

Rug*_*rra 0 c++ pointers pass-by-reference

当我不能通过引用传递参数并且我需要使用指针时,你能给我一个例子.我找到了一个例子,但我不确定.

假设您有一个D派生自基类的类B.如果你想这样做,你需要指针:

void function(B* b){...}
int main{
  D* d;
  function(d);
}
Run Code Online (Sandbox Code Playgroud)

And*_*ron 6

如果您通过传递空指针允许"无参数"的概念,那么您不能使用引用并且必须使用指针的唯一时间.

但是,当您实际存储指向传递的内容的指针时,您可能希望将指针用作参数.大多数C++开发人员会注意到您没有使用引用,并特别注意您的文档所说的内容.


Che*_*Alf 6

如果存在使用指针参数的编码指南(如Google),那就是你所做的.

否则,只有当指针形式参数声明自己的函数时

  • nullpointer是一个有效且有意义的实际参数,或

  • 实际的论证是最自然的指针,或者

  • 你要把指针存放在某个地方.

可能更多的情况,但我认为你得到漂移:当你有一个选择(没有编码指南另有说法),更喜欢参考.

干杯&hth.,

  • 当然,不要使用Google的.这很傻. (3认同)