#ifndef NUMBER_H #define NUMBER_H #include #include "packedintarray.h" class Number { public: Number( int iOrd=0 ); Number( const Bu::String &sData, int iOrd=0 ); virtual ~Number(); Number &operator=( const Bu::String &sNum ); Number &operator=( const Number &rhs ); Number operator+( const Number &rhs ) const; Number operator-( const Number &rhs ) const; Number operator*( const Number &rhs ) const; Number operator/( const Number &rhs ) const; Number operator%( const Number &rhs ) const; Number operator-() const; bool operator==( const Number &rhs ) const; bool operator!=( const Number &rhs ) const; bool operator>( const Number &rhs ) const; bool operator<( const Number &rhs ) const; bool operator>=( const Number &rhs ) const; bool operator<=( const Number &rhs ) const; void set( const Bu::String &sNum ); void set( const Number &sNum ); void divide( const Number &rhs, Number &q, Number &r ) const; operator Bu::String() const { return aInt.toString(); } Bu::String toString() const; int digit( int iOrder ) const; private: Number add( const Number &rhs, bool bSub ) const; private: int iOrd; bool bPositive; PackedIntArray aInt; }; #endif