运算符重载的本质:重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。
大多数的重载运算符可被定义为普通的非成员函数或者被定义为类成员函数。
非成员函数:需要为每次操作传递两个参数
Box operator+(const Box&, const Box&);
成员函数: 对象作为参数进行传递,对象的属性使用 this 运算符进行访问
// 重载 + 运算符,用于把两个 Box 对象相加
Box operator+(const Box& b)
{
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}