当我们没有将Operator +定义为朋友时? C ++

时间:2018-06-03 20:12:48

标签: c++ c++11 operator-overloading

我在某些来源中读到,如果我们按operator+实施operator=+,那么我们就没有将operator+定义为“朋友”。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

一个想法是避免重复的代码。见这个例子:

operator+

然后,您可以operator+=实现A operator+(const A& lhs, const A& rhs) { A tmp(lhs); tmp += rhs; return tmp; } ,为自己保存重复的代码,并将其保留为免费功能:

+=

这意味着您现在有两个功能。如果您更改+的含义,ref的含义也会发生变化。更易于维护。