这篇文章主要介绍了C++ 基础编程之十进制转换为任意进制及操作符重载的相关资料,需要的朋友可以参考下
C++ 基础编程之十进制转换为任意进制及操作符重载
最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下,
实例代码:
#include #include #include usin<p style="color:transparent">来源gao!%daima.com搞$代*!码网</p>g namespace std; using std::iterator; ///<summary> ///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。 ///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<<) ///</summary> class TenToAny { vector 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=10) remain = 'A'+ remain % 10; else remain +='0'; value.push_back(remain); } vector::reverse_iterator v= value.rbegin(); while(*v=='0') value.pop_back(); if(flag=='-') value.push_back(flag); } catch(char *e) { cout<<e<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 value =num.value; vector::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; }
运行结果:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
以上就是C++ 基础编程之十进制转换为任意进制及操作符重载的详细内容,更多请关注gaodaima搞代码网其它相关文章!