重载算术操作符:
有两种写法,分别是在类内重载操作符和重载全局操作符,两种方法大同小异,以类内重载操作符为例:
假设有一个分数类:
class Fraction
{
public:
Fraction(): num(1), den(1)
{
}
Fraction(int n, int d) : num(n), den(d)
{
}
// 重载加号操作符
Fraction operator + (const Fraction& other)
{
Fraction result;
result.den = den * other.den; // 分母相乘
result.num = num*other.den + den * other.num; // 分子交叉相乘
return result;
}
public:
int num;
int den;
};
加粗部分即为对分数类的+号重载,其他算术符语法相同,只需替换符号和函数内部算法即可,返回值一般为该类对象,参数一般为该类对象的引用。