PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 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
繼續閱讀
[贈書] c++ primer 3/e 中文版+題解
aknow
[問題] UVA10735 Euler Circuit
kilettt
[問題] if的簡潔版
wu110011
[問題] OPENGL貼圖Z方向沒辦法 REPEAT
noodleT
[問題] 電腦白癡遇到問題求解
lkjfds
[問題] 動態連結OS內建的msvcrt
fo40225
[分享] Boost 1.60.0
saxontai
[問題] C++ class的實作問題(解決)
kiwistar
[問題] 成員變數一開始宣告成空指標有比較快嗎?
ResolaQQ
[問題] QT使用mysql連線資料庫
makuebx
Links
booklink
Contact Us: admin [ a t ] ucptt.com