运算符+() 和运算符 +=()

operator+() and operator+=()

本文关键字:运算符      更新时间:2023-10-16

我的C++讲师声称,每当您必须实现运算符+()时,您还必须提供运算符+=()?

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

你的讲师错了。

事实上,你可以将两个对象相加,形成一个新的第三个对象(这就是二进制+所做的),并不一定意味着你的对象应该是可"就地"修改的(这就是+=所做的)。

换句话说,当且仅当您的类支持可就地修改的概念时,那么在提供+=时提供+=是一种相当好的编程实践。但无论如何,这里没有"必须"。