2014-11-13 97 views
0

我的C++講師聲稱,無論何時您必須實現operator +(),您還必須提供operator + =()以及?operator +()和operator + =()

我無法理解這個邏輯,有人可以向我解釋這個決定背後的邏輯嗎?

+0

如果你打算做一個,那麼兩者都有意義,但是對此沒有「必須」。 – crashmstr

+0

不,沒有任何東西強迫你這樣做,它只是推薦,因爲它是合乎邏輯的。 – clcto

+0

索賠是不合理的:Z運營商+(X,Y) –

回答

1

您的講師是錯誤的。

,你可以總結兩個對象形成新的第三個對象(這是二進制+一樣),但這並不一定意味着你的對象應該是修改「到位」(這是什麼+=一樣)。

換句話說,當且僅當您的類支持的到位是修改的概念,那麼它是一個相當良好的編程習慣提供+=只要您同時提供+=。但無論如何,這裏沒有「必須」。