[問題] C++ 增加傳參考的動機是什麼?

作者: ej001 ( )   2015-12-20 20:20:06
問題(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的動機, 煩請解惑 謝謝
作者: flyfoxy (飛狐)   2015-12-20 20:22:00
我覺得是1.在function內不用打(*ptr)-> 這種醜樣子2.pointer可能會不知道指到哪裡去
作者: Caesar08 (Caesar)   2015-12-20 20:24:00
不用檢查是不是nullptr,不能改變reference object使用上就如同一般object,而且也不用new與delete
作者: flyfoxy (飛狐)   2015-12-20 20:25:00
抱歉 1.是指(*ptr). 或是 ptr->
作者: ej001 ( )   2015-12-20 20:33:00
謝謝回答:-)
作者: littleshan (我要加入劍道社!)   2015-12-21 10:11:00
增加reference type的主要原因在於operator overload像 std::vector 的 operator[],不回傳ref會很難用可以參考一下C++ FAQ https://goo.gl/eZsppS
作者: storm654321 (P助)   2015-12-21 11:48:00
只要一個&就好很方便啊O'_'O

Links booklink

Contact Us: admin [ a t ] ucptt.com