看板 C_and_CPP 關於我們 聯絡資訊
請問一下c++中,在傳資料時 出現了 void foo(Car &a_car) { a_car.getName(); } Car 是一個class, getName是他的一個method. 1.請問Car &a_car 是什麼? "取a_car的位置"嗎? 2.還是應該Car & 看成一個data type? 就像 Car *是一個指向Car 的pointer 3.所以Car &是? 在invoke foo時, 應該pass什麼呢? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.155.193
purincess:"reference" 12/04 23:36
johnhmj:參照,是某個物件的別名(alias)。 12/04 23:49
WJAider:想像成是一個新的 data type 跟 Car 用法一模一樣 12/05 01:58
WJAider:但是只有一個建構函式 Car( const Car& cr ); 12/05 01:59
WJAider:作用是把自己的記憶體位誌改得跟 cr 一樣 12/05 02:00
WJAider:建構後就把它當成 cr 用,以上提供僅供理解 12/05 02:02
WJAider:實際上應該不是這樣做的,理解後就跟樓上講的一樣當別名用 12/05 02:02
m13m13m:請問 所以是相當於pass by reference嗎?可能會改到callee 12/05 22:05
m13m13m:pass進來的data? 12/05 22:05
WJAider:不是很懂你問的,不過既然是別名,動他等於動本尊 12/06 02:40
diabloevagto:http://ppt.cc/MIwK 你需要的是找個網站好好了解 12/06 13:26
knuckles:我寫的參考一下 http://disp.cc/b/11-M5 12/06 20:10
m13m13m:knuckles 你寫的好清楚! 我了解了 pass by reference 在 12/07 21:20
m13m13m:C++中 就和Java的pass by ref 是一樣的嗎? 只是語法上略略 12/07 21:20
m13m13m:不同. 不過如果是這樣< 12/07 21:20
m13m13m:我猜想 pass by ref 是為了要讓使用者去掉不清楚 * &兩個 12/07 21:21
m13m13m:operator 的貼心行為吧? 所以說 pass by ref 的行為和 12/07 21:21
m13m13m:pass by address 所產生的行為也是一樣的八? 12/07 21:22
m13m13m:也謝謝其他版友 12/07 21:24