我想重载两个运算符: + = 和 +
它们之间的区别是什么? 是+ =只是修改当前对象而+返回一个新对象?
答案 0 :(得分:4)
就像你说的那样,operator + =就地工作(它会修改当前对象),而operator +返回一个新对象并保持其参数不变。
为类型T
实现它们的常用方法如下:
// operator+= is a member function of T
T& T::operator+=(const T& rhs)
{
// perform the addition
return *this;
}
// operator+ is a free function...
T operator+(T lhs, const T& rhs)
{
// ...implemented in terms of operator+=
lhs += rhs;
return lhs;
}