[問題] operator= overloading
這是書上的例題, 有個觀念請教
若要overloading = 符號,
讓自訂的Array 型別可以實現 Array1=Array2
書本給的程式碼簡化如下:
class Array
{
public:
const Array& operator=(const Array&);
略
};
//const return avoids: (x=y)=z
const Array& Array::operator=(const Array& a)
{
略
return *this; //enable cascading x=y=z
}
我的疑問是為何此函式要傳回 const 的參考?
註解說的avoid (x=y)=z 這邊我不太明白
如果傳回const 參考..那(x=y)會傳回const的x參考
則再做x=z時不就無法執行了嗎
還是我的觀念有什麼錯誤:)
可以幫我解釋一下在此 const ref與non-const ref 造成的差異嗎
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.69.128.66
※ 編輯: jehovah 來自: 210.69.128.66 (06/25 13:20)
→
06/25 13:26, , 1F
06/25 13:26, 1F
→
06/25 14:35, , 2F
06/25 14:35, 2F
→
06/25 14:38, , 3F
06/25 14:38, 3F
→
06/25 16:39, , 4F
06/25 16:39, 4F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):