作者ej001 ( )
看板C_and_CPP
標題[問題] C++ 增加傳參考的動機是什麼?
時間Sun Dec 20 20:20:06 2015
問題(Question):
在呼叫函式中, C 本來就有Call by value 和 Call by value of pointer 的功能
請問為什麼C++ 還要增加Call by reference的功能?
因為Call by reference 和 Call by value of pointer 這兩種呼叫方式
都會修改到原本的變數, 而且當變數個數很多或值很巨大時, 也有節省記憶體空間的功用
似乎看不出為什麼要發明Call by reference的動機, 煩請解惑 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.189.197.194
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1450614009.A.6E0.html
1F:推 flyfoxy: 我覺得是1.在function內不用打(*ptr)-> 這種醜樣子 12/20 20:22
2F:→ flyfoxy: 2.pointer可能會不知道指到哪裡去 12/20 20:23
3F:→ Caesar08: 不用檢查是不是nullptr,不能改變reference object 12/20 20:24
4F:→ Caesar08: 使用上就如同一般object,而且也不用new與delete 12/20 20:24
5F:推 flyfoxy: 抱歉 1.是指(*ptr). 或是 ptr-> 12/20 20:25
6F:→ ej001: 謝謝回答:-) 12/20 20:33
7F:推 littleshan: 增加reference type的主要原因在於operator overload 12/21 10:11
8F:→ littleshan: 像 std::vector 的 operator[],不回傳ref會很難用 12/21 10:11
10F:推 storm654321: 只要一個&就好很方便啊O'_'O 12/21 11:48