Re: [問題] operator= overloading

看板C_and_CPP作者時間14年前 (2011/11/25 16:05), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串2/2 (看更多)
借用標題問一下~~ 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
文章代碼(AID): #1Epqmkji (C_and_CPP)
文章代碼(AID): #1Epqmkji (C_and_CPP)