#include "Number.h" #include "NumberRep.h" #include "Integer.h" #include "Fraction.h" #include Fraction::Fraction(int num, int den) : n(num), d(den) {} void Fraction::display() const { cout << n << '/' << d; } Number Fraction::add(const NumberRep *r) const { // *this + *r return r->revAdd(this); } Number Fraction::div(const NumberRep *r) const { // *this / *r return r->revDiv(this); } Number Fraction::revAdd(const Integer *l) const { // *l + *this return Number(l->n * d + n, d); } Number Fraction::revDiv(const Integer *l) const { // *l / *this return Number(l->n * d, n); } Number Fraction::revAdd(const Fraction *l) const { // *l + *this return Number(l->n * d + n * l->d, d * l->d); } Number Fraction::revDiv(const Fraction *l) const { // *l / *this return Number(l->n * d, l->d * n); } NumberRep * Fraction::copy() const { return new Fraction(n, d); }