是否有任何理由不發送參數作爲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