http://codepad.org/twicEudY
我對參考的概念還停留在 它是一個變數的別名 可以當參數傳遞(call by reference)
可以有多個回傳值的效果等等
可是我看不懂把一個函式當成參考回傳的意思
如果接收的人是宣告成參考 counter &a =++i; 以正常來看很好瞭解 a等於i(itsval+1
的i)了 而且兩者的位址相同
不過這程式的要求僅僅是把itsval的值複製給新的物件a 但是我不知道要如何去解讀它
const counter& counter::operator++()
{
++itsval;
return *this;
}
作者:
s89227 (Kei)
2014-12-05 02:42:00這應該是operator overloading的用法吧?
是吧 但有什麼跟一般函式不一樣的地方嗎?純粹只是把++當成函式名稱在使用吧?
作者:
LPH66 (-6.2598534e+18f)
2014-12-05 06:26:00跟傳參數的意思一樣啊, 外面看到的回傳"物件"就是裡面這個運算所得到的物件, 在此就是指自己本身
那為什麼有時候接收者可以宣告成參考有時不用(像現在)
作者:
purpose (秀才遇到肥宅兵)
2014-12-05 12:38:00就意圖不同啊,如果 counter a= ++i; 這樣,就是有兩套實體,這樣 const counter& a= ++i; 則只有一個實例
作者:
s89227 (Kei)
2014-12-05 17:45:00效果一樣但是用到的資源量不一樣呀!今天 一個int 和 一百萬個int,by value和by reference差很多
我找了不同書看 發現有很多不同的觀點我先看看再發問好了 謝謝