#ifndef __Complex #define __Complex #include "NumberRep.hh" // forward declarations class Integer; class Long; class LargeInt; class Complex; class Imaginary; class Complex: public NumberRep { public: Complex( ); ~Complex( ); Complex( SimpleNumber* rVal, SimpleNumber* iVal ); virtual NumberRep* operator+ ( const NumberRep& n ) const; virtual NumberRep* operator- ( const NumberRep& n ) const; virtual NumberRep* operator- ( ) const; const SimpleNumber* getRValue( ) const; const SimpleNumber* getIValue( ) const; protected: virtual NumberRep* addInt( const Integer& n ) const; virtual NumberRep* addLong( const Long& n ) const; virtual NumberRep* addLargeInt( const LargeInt& n ) const; virtual NumberRep* addComplex( const Complex& n ) const; virtual NumberRep* addImaginary( const Imaginary& n ) const; virtual NumberRep* subsInt( const Integer& n ) const; virtual NumberRep* subsLong( const Long& n ) const; virtual NumberRep* subsLargeInt( const LargeInt& n ) const; virtual NumberRep* subsComplex( const Complex& n ) const; virtual NumberRep* subsImaginary( const Imaginary& n ) const; private: SimpleNumber* rValue; SimpleNumber* iValue; }; #endif // __Complex