#ifndef __NumberRep #define __NumberRep #include "Number.hh" // forward declarations class SimpleNumber; class Integer; class Long; class LargeInt; class Complex; class Imaginary; class NumberRep { friend class Number; public: NumberRep( ); ~NumberRep( ); virtual NumberRep* operator+ ( const NumberRep& n ) const =0; virtual NumberRep* operator- ( const NumberRep& n ) const =0; virtual NumberRep* operator- ( ) const =0; protected: virtual NumberRep* addInt( const Integer& n ) const =0; virtual NumberRep* addLong( const Long& n ) const =0; virtual NumberRep* addLargeInt( const LargeInt& n ) const =0; virtual NumberRep* addComplex( const Complex& n ) const =0; virtual NumberRep* addImaginary( const Imaginary& n ) const =0; virtual NumberRep* subsInt( const Integer& n ) const =0; virtual NumberRep* subsLong( const Long& n ) const =0; virtual NumberRep* subsLargeInt( const LargeInt& n ) const =0; virtual NumberRep* subsComplex( const Complex& n ) const =0; virtual NumberRep* subsImaginary( const Imaginary& n ) const =0; private: int count; }; #endif // __NumberRep