2014-11-13 57 views
0

我的C++讲师声称,无论何时您必须实现operator +(),您还必须提供operator + =()以及?operator +()和operator + =()

我无法理解这个逻辑,有人可以向我解释这个决定背后的逻辑吗?

+0

如果你打算做一个,那么两者都有意义,但是对此没有“必须”。 – crashmstr

+0

不,没有任何东西强迫你这样做,它只是推荐,因为它是合乎逻辑的。 – clcto

+0

索赔是不合理的:Z运营商+(X,Y) –

回答

1

您的讲师是错误的。

,你可以总结两个对象形成新的第三个对象(这是二进制+一样),但这并不一定意味着你的对象应该是修改“到位”(这是什么+=一样)。

换句话说,当且仅当您的类支持的到位是修改的概念,那么它是一个相当良好的编程习惯提供+=只要您同时提供+=。但无论如何,这里没有“必须”。