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

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

一開始以爲沒啥,但想一想又不對勁.net

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

 

一波百度以後blog

 

&是爲了引用傳遞,防止值傳遞的複製數據get

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

相關文章
相關標籤/搜索