【发布时间】:2012-09-28 00:26:24
【问题描述】:
【问题讨论】:
-
除了重复问题给出的信息:C++ has no call by name.
标签: c++ reference callbyname
【问题讨论】:
标签: c++ reference callbyname
按值调用:将参数的副本传递给函数
call be reference:不做额外的拷贝,直接传递调用者的变量。
主要区别是在按值调用范式中创建了一个额外的不必要的副本...您应该始终使用调用作为引用(或常量引用),除非被调用者需要修改变量并且您不希望更改你的调用者的变量...
【讨论】:
unless 这个词让我有点困惑。
按值调用会创建传递给函数的参数的副本 - 因此对于可能会产生大量开销的大型对象。它还会阻止您对函数内的参数进行任何更改,因为它们只会反映在副本中。通过引用调用传递对对象的引用,因此可以对该对象进行更改 - 当然除非您通过 const 引用传递。
【讨论】: