是否有任何理由不发送参数作为const &
而不是按值,当它不会被更改并且不会进行复制?我的理解是const
by value参数与没有const
(并且不会相互重载)相同,因此它仍将被复制。作为Const参考的函数参数
我知道最好通过const &
发送大对象,但我不知道这条线是在哪里。或者如果即使很小的参数应该通过值发送,如果它们将不会被更改或复制。
注意::我试图寻找这个,但主题是相当含糊,所以我没有找到任何好的答案,我很抱歉如果这已被回答(发现许多问题什么时候使用const
何时使用const &
但不关于价值的优势vs const &
对于不明显的对象)。
你可能会觉得这篇文章有意思:http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ – lccarrasco
完全型我一直在寻找的东西,谢谢!关键字如此一般,我很难搜索。 –
@lccarrasco:Dave Abrahams正在讨论通过函数内的值来返回对象。问题是关于函数的输入参数。在这种情况下,OP应该通过const引用传递本机类型以外的对象。 – Praetorian