我在一些资料中读到,如果我们operator+
通过operator=+
所以我们没有定义operator+
为“朋友”。
有人可以解释一下吗?
一个想法是避免重复代码。看这个例子:
class A
{
int a = 0;
public:
A & operator+=(const A& other) { a += other.a; return *this; }
};
然后,您可以operator+
通过operator+=
保存重复代码并将其保留为免费功能来实现:
A operator+(const A& lhs, const A& rhs) { A tmp(lhs); tmp += rhs; return tmp; }
这意味着您现在有两个功能。如果你改变 的含义+=
,它的含义+
也会改变。更容易维护。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句