189 8069 5689

C++基础编程之十进制转换为任意进制及操作符重载

C++ 基础编程之十进制转换为任意进制及操作符重载

创新互联主要从事网站建设、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务濂溪,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

       最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下,

实例代码:

#include 
#include 
#include 
using namespace std; 
using std::iterator; 
/// 
///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。 
///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<<) 
/// 
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=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<

运行结果:

C++ 基础编程之十进制转换为任意进制及操作符重载

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


网页名称:C++基础编程之十进制转换为任意进制及操作符重载
文章起源:http://cdxtjz.com/article/piidhj.html

其他资讯