[问题] 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