对于每一个运算符,我们采取一个新的类fraction将他们重载,因为分数运算大多会到浮点,但是如果以分数的形式一直下去,也是可以的,我们发现,将分子分母保留,将每一个运算符都重载成分数的运算,这样子可以简化后面代码的生成。
代码:
friend fraction operator + (fraction & f1, fraction & f2) //以友元函数重载运算符
{
return fraction(f1.a * f2.b + f1.b * f2.a, f1.b * f2.b);
}
friend fraction operator - (fraction & f1, fraction & f2)
{
return fraction(f1.a*f2.b - f1.b*f2.a, f1.b*f2.b);
}
friend fraction operator * (fraction & f1, fraction & f2)
{
return fraction(f1.a*f2.a, f1.b*f2.b);
}
friend fraction operator / (fraction & f1, fraction & f2)
{
return fraction(f1.a*f2.b, f1.b*f2.a);
}
friend fraction operator ^ (fraction & f1, fraction & f2)
{
return fraction(boom(f1.a, f2.a), boom(f1.b, f2.b));
}