Re: [問題] operator= overloading
借用標題問一下~~
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
→
11/25 16:22, , 1F
11/25 16:22, 1F
→
11/25 22:16, , 2F
11/25 22:16, 2F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):