看板 C_and_CPP 關於我們 聯絡資訊
問題(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://www.ptt.cc/bbs/C_and_CPP/M.1450614009.A.6E0.html
flyfoxy: 我覺得是1.在function內不用打(*ptr)-> 這種醜樣子 12/20 20:22
flyfoxy: 2.pointer可能會不知道指到哪裡去 12/20 20:23
Caesar08: 不用檢查是不是nullptr,不能改變reference object 12/20 20:24
Caesar08: 使用上就如同一般object,而且也不用new與delete 12/20 20:24
flyfoxy: 抱歉 1.是指(*ptr). 或是 ptr-> 12/20 20:25
ej001: 謝謝回答:-) 12/20 20:33
littleshan: 增加reference type的主要原因在於operator overload 12/21 10:11
littleshan: 像 std::vector 的 operator[],不回傳ref會很難用 12/21 10:11
littleshan: 可以參考一下C++ FAQ https://goo.gl/eZsppS 12/21 10:12
storm654321: 只要一個&就好很方便啊O'_'O 12/21 11:48