大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C++ 基础编程之十进制转换为任意进制及操作符重载
创新互联主要从事网站建设、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务濂溪,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下,
实例代码:
#include#include #include using namespace std; using std::iterator; /// ///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。 ///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<<) /// class TenToAny { vectorvalue; 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 =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< 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<
运行结果:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!