www.pudn.com > vlong.rar > vlong.h
#ifndef VLONG_H_ #define VLONG_H_ #include#include #include #include #include #include #include using std::cout; using std::cin; using std::string; using std::endl; using std::vector; using std::deque; using std::cerr; using std::stringstream; using std::ostream; using std::istream; using std::domain_error; const int seg_length = 8; const long seg_num = 100000000; const long divide = 10000; class vlong { public: vlong(); vlong(const vlong&); vlong(const string&); vlong(const int&); vlong(const char*); vlong(const vector &, bool); vlong& operator=(const vlong&); vlong& operator=(const string&); vlong& operator=(const int&); vlong& operator=(const char*); vlong& operator=(const vector &); vlong& operator++(); vlong& operator--(); void output() const; void output_num_vector() const; const string get_str() const; const bool get_sig() const; void set_sig(bool); const int length() const; const vector get_vec() const; protected: void input(); void str_to_vec(); void vec_to_str(); void check_input(); bool check_positive(string&); private: string num_str; vector num_vector; bool is_positive; }; ostream& operator<<(ostream&, const vlong&); istream& operator>>(istream&, vlong&); const vlong operator+(const vlong&, const vlong&); const vlong operator-(const vlong&); const vlong operator-(const vlong&, const vlong&); const vlong operator*(const vlong&, const vlong&); const vlong operator/(const vlong&, const vlong&); const vlong operator%(const vlong&, const vlong&); const vlong operator+(const vlong&, const int); const vlong operator-(const vlong&, const int); const vlong operator*(const vlong&, const int); const vlong operator/(const vlong&, const int); const vlong operator%(const vlong&, const int); const vlong operator+(const vlong&, const string&); const vlong operator-(const vlong&, const string&); const vlong operator*(const vlong&, const string&); const vlong operator/(const vlong&, const string&); const vlong operator%(const vlong&, const string&); const vlong operator+(const int, const vlong&); const vlong operator-(const int, const vlong&); const vlong operator*(const int, const vlong&); const vlong operator/(const int, const vlong&); const vlong operator%(const int, const vlong&); const vlong operator+(const string&, const vlong&); const vlong operator-(const string&, const vlong&); const vlong operator*(const string&, const vlong&); const vlong operator/(const string&, const vlong&); const vlong operator%(const string&, const vlong&); const vlong operator+(const int, const string&); const vlong operator-(const int, const string&); const vlong operator*(const int, const string&); const vlong operator/(const int, const string&); const vlong operator%(const int, const string&); const vlong operator+(const string&, const int); const vlong operator-(const string&, const int); const vlong operator*(const string&, const int); const vlong operator/(const string&, const int); const vlong operator%(const string&, const int); const vlong operator+=(vlong&, const vlong&); const vlong operator+=(vlong&, const int); const vlong operator+=(vlong&, const string&); const vlong operator-=(vlong&, const vlong&); const vlong operator-=(vlong&, const int); const vlong operator-=(vlong&, const string&); const vlong operator*=(vlong&, const vlong&); const vlong operator*=(vlong&, const int); const vlong operator*=(vlong&, const string&); const vlong operator/=(vlong&, const vlong&); const vlong operator/=(vlong&, const int); const vlong operator/=(vlong&, const string&); const vlong operator%=(vlong&, const vlong&); const vlong operator%=(vlong&, const int); const vlong operator%=(vlong&, const string&); #include "vlong.cpp" #endif /*VLONG_H_*/