//accepts rational numbers and returns their difference const Rat operator -(const Rat& r1, const Rat& r2){ int denom = lcm(r1.getDenom(), r2.getDenom()); int num = (r1.getNum()*denom/r1.getDenom()) - (r2.getNum()*denom/r2.getDenom()); Rat dif = Rat(num, denom); return dif.reduce(); }
//accepts rational numbers and returns their product const Rat operator *(const Rat& r1, const Rat& r2){ int denom = r1.getDenom() * r2.getDenom(); int num = r1.getNum() * r2.getNum(); Rat prod = Rat(num, denom); return prod.reduce(); }
//accepts rational numbers and returns their sum const Rat operator +(const Rat& r1, const Rat& r2){ int denom = lcm(r1.getDenom(), r2.getDenom()); int num = (r1.getNum()*denom/r1.getDenom()) + (r2.getNum()*denom/r2.getDenom()); Rat sum = Rat(num, denom); return sum.reduce(); }