據我了解:當您按值傳遞時,該函數將對傳遞的參數進行本地復制并使用該參數;當函數結束時,它將超出范圍。當您通過const引用傳遞時,該函數將使用對無法修改的傳遞參數的引用。但是,我不理解為什么一個人會選擇一個而不是另一個,除非需要修改和返回一個參數。如果您有一個void函數,什么也沒有返回,為什么要選擇一個?編輯:因此基本上通過const引用傳遞避免復制對象。那么在什么情況下復制對象是好的?我的意思是,為什么不始終使用const引用,如果它始終可以優化性能呢?
3 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
在某些情況下,復制對象可能會極大地影響性能。考慮一個函數,該參數將是一個參數,std::vector<long>并且您想要傳遞帶有一百萬個元素的向量。在這種情況下,您將要在通過值傳遞時使用const引用。在這個SO問題中,您可以找到關于問題的簡單一般規則。
- 3 回答
- 0 關注
- 805 瀏覽
添加回答
舉報
0/150
提交
取消