最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C++ 基础编程之十进制转换为任意进制及操作符重载
时间:2017-04-06 编辑:简简单单 来源:一聚教程网
C++ 基础编程之十进制转换为任意进制及操作符重载
最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下,
实例代码:
代码如下 | 复制代码 |
#include #include #include usingnamespacestd; usingstd::iterator; /// ///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。 ///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<<) /// classTenToAny { vector longlong_n; longlong_x; public: TenToAny():_n(10),_x(0) {
} voidSwitch() { try { intx=_x, n=_n; charflag=' '; if(x>LONG_MAX||x throw"溢出"; if(x<0) { flag='-'; x=-x; } while(x!=0) { longlongremain = x%n; x = x/n; if(remain>=10) remain ='A'+ remain % 10; else remain +='0'; value.push_back(remain); } vector while(*v=='0') value.pop_back(); if(flag=='-') value.push_back(flag); } catch(char*e) { cout< } } TenToAny(longlongn,longlongx) { _n=n; _x=x; Switch(); } TenToAny &operator = (constTenToAny &num) { if(this==&num) return*this; value=num.value; _n=num._n; _x=num._x; return*this; } TenToAny operator +(constTenToAny &num1) { TenToAny num; num._x=num1._x + _x; num._n=num1._n; num.Switch(); returnnum; } TenToAny &operator ++()//前置++ { _x++; value.clear(); this->Switch(); return*this; } TenToAny &operator ++(int)//后置++ { TenToAny *temp=newTenToAny(this->_n,this->_x); _x++; value.clear(); this->Switch(); return*temp; } friendostream &operator <<(ostream &out,TenToAny num); }; ostream &operator <<(ostream &out,TenToAny num) { vector vector for(;v!=value.rend();v++) { out<<*v; } returnout; } intmain() { TenToAny num(19,111); TenToAny copy(19,222); TenToAny sum; sum =num+copy; cout< cout< cout< cout<<(++copy)< return0; } |
运行结果:
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10