c++ 函數形參使用常引用 const &


今天看到一段代碼,函數的形參類型是 const A &(A是定義的一個類)

一開始覺得沒啥,但想想又不對勁

const就是常量嘛,不想讓這個參數被修改,引用就是起別名,修改形參的值,實參也會改變(其實就是修改同一個變量),那聲明成引用變量的意義是什么

 

一波百度之后

 

&是為了引用傳遞,防止值傳遞的復制數據

const是為了保護數據不被改動

const&防止傳值時拷貝構造函數的調用開銷

 

簡單來說就是,在不加const 和 & 的情況下,進行普通的函數調用,必然會有值傳遞,如果數據量大花費時間長(且有些類型在設計上拒絕復制)

引用的話只是起別名,還是這個變量,就不用進行值傳遞,但這個就可以改變值,所以再加上const修飾

 

結論

如果不需改變形參的值又不用作參數傳遞(實參賦值給形參),用常引用作形參適應面最廣:實參可以是變量也可以是常量。

如果需要改變形參的值,用引用作形參最合適:實參必須是變量不允許是常量。

如果不需改變形參的值又可以用作參數傳遞(實參賦值給形參),用普通變量作形參:多了傳遞參數的開銷。

 

參考資料:

https://blog.csdn.net/juddi/article/details/82761397

https://blog.csdn.net/guoyilongedu/article/details/44243353?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM