六一的部落格


关关难过关关过,前路漫漫亦灿灿。



建议将算术运算符重载为非成员函数

如果重载为成员函数, 左侧运算对象/第一个运算对象必须为类类型


加法运算符重载

返回一个右值, 接受两个const引用

1T operator+(const T &lhs, const T &rhs)
2{
3    T sum = lhs;
4    sum += rhs;
5    return sum;
6}

当我们需要重载加法运算符, 建议同时定义对应的复合赋值运算符: 在加法运算符中使用对应的复合运算符实现


复合赋值运算符

建议定义为成员函数, 与赋值操作统一

1T& operator+=(const T &rhs)
2{
3    // process
4    return *this;
5}

算术运算符重载: 加法


建议将算术运算符重载为非成员函数

如果重载为成员函数, 左侧运算对象/第一个运算对象必须为类类型


加法运算符重载

返回一个右值, 接受两个const引用

1T operator+(const T &lhs, const T &rhs)
2{
3    T sum = lhs;
4    sum += rhs;
5    return sum;
6}

当我们需要重载加法运算符, 建议同时定义对应的复合赋值运算符: 在加法运算符中使用对应的复合运算符实现


复合赋值运算符

建议定义为成员函数, 与赋值操作统一

1T& operator+=(const T &rhs)
2{
3    // process
4    return *this;
5}