#ifndef __SimpleNumber #define __SimpleNumber #include "NumberRep.hh" // forward declarations class Integer; class Long; class LargeInt; class Complex; class Imaginary; // Implementa el metodo clone (similar a un exemplar) para una copia de cualquier tipo // de la jerarquia class SimpleNumber: public NumberRep { public: SimpleNumber( ); ~SimpleNumber( ); 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; virtual SimpleNumber* clone( ) const =0; }; #endif // __SimpleNumber