看板 C_and_CPP 關於我們 聯絡資訊
http://codepad.org/twicEudY 我對參考的概念還停留在 它是一個變數的別名 可以當參數傳遞(call by reference) 可以有多個回傳值的效果等等 可是我看不懂把一個函式當成參考回傳的意思 如果接收的人是宣告成參考 counter &a =++i; 以正常來看很好瞭解 a等於i(itsval+1 的i)了 而且兩者的位址相同 不過這程式的要求僅僅是把itsval的值複製給新的物件a 但是我不知道要如何去解讀它 const counter& counter::operator++() { ++itsval; return *this; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.25.168 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1417718298.A.D96.html
s89227: 這應該是operator overloading的用法吧? 12/05 02:42
anoymouse: 是吧 但有什麼跟一般函式不一樣的地方嗎? 12/05 03:36
anoymouse: 純粹只是把++當成函式名稱在使用吧? 12/05 03:37
LPH66: 跟傳參數的意思一樣啊, 外面看到的回傳"物件"就是裡面這個 12/05 06:26
LPH66: 運算所得到的物件, 在此就是指自己本身 12/05 06:26
anoymouse: 那為什麼有時候接收者可以宣告成參考有時不用(像現在) 12/05 12:17
purpose: 就意圖不同啊,如果 counter a= ++i; 這樣,就是有兩套 12/05 12:38
purpose: 實體,這樣 const counter& a= ++i; 則只有一個實例 12/05 12:39
anoymouse: 可是不宣告成&效果一樣 12/05 14:47
s89227: 效果一樣但是用到的資源量不一樣呀! 12/05 17:45
s89227: 今天 一個int 和 一百萬個int,by value和by reference差 12/05 17:47
s89227: 很多 12/05 17:47
anoymouse: 我找了不同書看 發現有很多不同的觀點 12/06 02:34
anoymouse: 我先看看再發問好了 謝謝 12/06 02:34