国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ 基礎(chǔ)編程之十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載

2020-01-26 14:14:52
字體:
供稿:網(wǎng)友

C++ 基礎(chǔ)編程之十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載

       最近學(xué)習(xí)C++ 的基礎(chǔ)知識(shí),完成十進(jìn)制轉(zhuǎn)換為任意進(jìn)制及操作符重載,在網(wǎng)上找的不錯(cuò)的資料,這里記錄下,

實(shí)例代碼:

#include<iostream> #include<vector> #include<limits> using namespace std; using std::iterator; ///<summary> ///十進(jìn)制轉(zhuǎn)換為任意進(jìn)制,為了熟悉操作符,也加了操作符重載。 ///包括自增(++),運(yùn)算符重(+),賦值函數(shù)重載(=),輸出符(<<) ///</summary> class TenToAny {   vector<char> value;   long long _n;   long long _x; public:   TenToAny():_n(10),_x(0)   {      }   void Switch()   {     try     {       int x=_x, n=_n;       char flag=' ';       if(x>LONG_MAX||x<LONG_MIN)         throw "溢出";       if(x<0)       {         flag='-';         x=-x;       }            while(x!=0)       {         long long remain = x%n;          x = x/n;              if(remain>=10)           remain = 'A'+ remain % 10;         else            remain +='0';         value.push_back(remain);       }       vector<char>::reverse_iterator v= value.rbegin();       while(*v=='0')         value.pop_back();       if(flag=='-')         value.push_back(flag);     }     catch(char *e)     {       cout<<e<<endl;     }   }   TenToAny(long long n,long long x)   {     _n=n;     _x=x;     Switch();   }   TenToAny &operator = (const TenToAny &num)   {     if(this==&num)       return *this;     value=num.value;     _n=num._n;     _x=num._x;     return *this;   }   TenToAny operator +(const TenToAny &num1)   {     TenToAny num;     num._x=num1._x + _x;     num._n=num1._n;     num.Switch();     return num;   }   TenToAny &operator ++()//前置++   {     _x++;     value.clear();     this->Switch();     return *this;   }   TenToAny &operator ++(int)//后置++   {     TenToAny *temp=new TenToAny(this->_n,this->_x);     _x++;     value.clear();     this->Switch();     return *temp;   }   friend ostream &operator <<(ostream &out,TenToAny num);     }; ostream &operator <<(ostream &out,TenToAny num) {   vector<char> value =num.value;   vector<char>::reverse_iterator v= value.rbegin();   for(;v!=value.rend();v++)   {     out<<*v;   }   return out; } int main() {   TenToAny num(19,111);   TenToAny copy(19,222);   TenToAny sum;   sum =num+copy;   cout<<num<<endl;   cout<<copy<<endl;    cout<<copy++<<endl;    cout<<(++copy)<<endl;    return 0; } 

運(yùn)行結(jié)果:

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定州市| 额尔古纳市| 冷水江市| 嘉义县| 镇江市| 临清市| 无极县| 西宁市| 无棣县| 修文县| 红桥区| 通化市| 逊克县| 铁岭县| 化隆| 浮山县| 镇远县| 桑植县| 土默特左旗| 泸州市| 九江县| 荣昌县| 伊川县| 长武县| 新泰市| 丰都县| 长葛市| 峨山| 抚宁县| 砚山县| 台湾省| 昌都县| 宣恩县| 商水县| 桃园县| 永吉县| 梅河口市| 任丘市| 新野县| 龙井市| 绥芬河市|