C++ Primer筆記(9)

來源:互聯網
上載者:User

參數傳遞
每次調用函數時,都會重新建立該函數所有的形參,此時所傳遞的實參將會初始化對應的形參。
形參的初始化與變數的初始化一樣,如果形參具有非參考型別,剛複製實參的值,如果形參為參考型別,則它是實參的別名。

非引用實參表示對應實參的局部副本。對這類形參的修改僅僅改變了局部副本的值。一旦函數執行結束,這些局部變數的值也就沒有了。


指標形參---不能修改指標的值,但可以修改指標指向的值。
如需保護指向的值,則形參需定義為指向const對象的指標。
可以將指向const對象的指標初始化為指向非const對象,但不可以讓指向非const對象的指標指向const對象。(細細品味)

非引用的const類型,由於還是以副本的形式傳遞,因此傳遞進函數的對象既可以是const對象,也可以是非const對象,但是仍被認為是普通類型來使用。


複製實參的局限性----不適宜複製實參的情況包括:
1、當需要在函數中修改實參的值時
2、當需要大型資料作為實參傳入時,所需要的時間和空間代價往往過大。
3、當沒有辦法實現對象複製時。

解決辦法:將形參定義為引用或指標類型。


引用形參---直接關聯其所綁定對象,而並非是對象的副本。

從C語言背景到C++程式員習慣通過傳遞指標來實現對實參的訪問,在C++中,使用引用形參則更安全和更自然。


引用形參作用:
1、通過引用形參返回額外的資訊、
2、利用const引用避免複製(這話寫的差點讓我暈了,後面解釋)
如果使用引用形參的唯一目的是避免複製實參,則應將形參定義為const引用(為什嗎?)
定義為const引用,可以避免修改實參,而只使用了形參的避免複製,我想這也就是這個標題的由來吧。
3、更靈活的指向const的引用
應該將不需要修改的引用形參定義為const引用。
4、傳遞指向指標的引用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.