#include "Rational.h" Rational operator+ (const Rational& a,const Rational& b){ return Rational(a.num * b.den + a.den * b.num,a.den * b.den); } Rational operator- (const Rational& a,const Rational& b){ return Rational(a.num * b.den - a.den * b.num,a.den * b.den); } Rational operator/ (const Rational& a,const Rational& b){ return Rational(a.num * b.den,a.den * b.num); } Rational operator* (const Rational& a,const Rational& b){ return Rational(a.num * b.num,a.den * b.den); } bool operator==(const Rational& a,const Rational& b){ return (a.num == b.num) && (a.den == b.den); } bool operator!=(const Rational& a,const Rational& b){ return !(a==b); } /* * Note: en pratique il faudrait mieux ecrire cette procedure * de maniere a traiter le cas du denominateur egal a 1, le cas du rationnel nul * (voir examen passe de ift1010 pour cela) */ ostream& operator<<(ostream& out, const Rational& r){ return out << r.num << "/" << r.den; } istream& operator>>(istream& in,Rational& r){ in >> r.num >> r.den; return in; }