看板 C_and_CPP 關於我們 聯絡資訊
這是書上的例題, 有個觀念請教 若要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)
james732:avoid不就是要"避免"的意思嗎? 06/25 13:26
tinlans:平常寫 x = y = z 是 x = (y = z) 06/25 14:35
tinlans:這個人單純只是希望 (x = y) = z 不能編過而已。 06/25 14:38
jehovah:謝謝解答~! 06/25 16:39