#ifndef Fraction_SEEN__ #define Fraction_SEEN__ /////// Fraction.h /////// #include "Number.h" class Fraction : public Number { friend class Number; friend class Integer; protected: Fraction(int n, int d) : num(n), denom(d) {} Number OP *(CS Number& n) CS; Number OP +(CS Number& n) CS; Number OP /(CS Number& n) CS; Number AddFra(CS Number& f) CS; Number TimFra(CS Number& f) CS; Number DivFra(CS Number& f) CS; Number AddInt(CS Number& i) CS; Number TimInt(CS Number& i) CS; Number DivInt(CS Number& i) CS; // i / *this void display(); private: Number* copy() const; int num; // numerator unsigned int denom; // denominator }; inline Number Fraction::OP *(CS Number& n) CS { return Number::TimFra(n); } inline Number Fraction::OP +(CS Number& n) CS { return Number::AddFra(n); } inline Number Fraction::OP /(CS Number& n) CS { return Number::DivFra(n); } inline Number* Fraction::copy() const { return (new Fraction(num, denom)); } #endif