作者mcdrumer ()
看板C_and_CPP
標題Re: [問題] operator= overloading
時間Fri Nov 25 16:04:59 2011
借用標題問一下~~
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
}
照螞蟻書的說法
member function overloading
leftmost 必須是此class 的object
並且會做一個代換的動作
如:A = B => A.operator=(B)
如果現在要cascading A = B = C
照程式的寫法不是應該是
A.operator(B) = C
(A = B) = C
不過執行出來的結果是如一般預期的
A = B = C
是因為 = 是 right to left
所以他一樣會從最右邊開始運作嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.156.44
→ diabloevagto:右到左沒錯 11/25 16:22
→ johnhmj:把它當成是"自定義的設定(函式)"就好了( ̄ー ̄;) 11/25 22:16