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

发布时间 - 2026-01-10 23:04:39    点击率:

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

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

实例代码:

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

运行结果:

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


# C++  # 十进制转换为任意进制及操作符重载  # 十进制转换为任意进制及操作符重载C++的实现  # C++超详细讲解数组操作符的重载  # 详解C++赋值操作符重载  # C++-操作符重载、并实现复数类详解  # C++ 开发之实现操作符重载的实例  # C++中的三大函数和操作符重载(Boolan)  # 浅谈C++虚重载操作符 virtual operator= 的使用方法  # C++中的操作符重载详细解析  # C++输入输出操作符重载的深入分析  # C++超详细讲解操作符的重载  # 转换为  # 希望能  # 谢谢大家  # 运算符  # 在网上  # char  # long  # TenToAny  # summary  # iterator  # _n  # void  # Switch  # int  # _x  # public  # std  # class  # brush  # cpp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: lovemo网页版地址 lovemo官网手机登录  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  制作企业网站建设方案,怎样建设一个公司网站?  如何在云主机快速搭建网站站点?  Laravel怎么使用artisan命令缓存配置和视图  Laravel如何实现数据库事务?(DB Facade示例)  实例解析Array和String方法  Laravel Session怎么存储_Laravel Session驱动配置详解  如何实现javascript表单验证_正则表达式有哪些实用技巧  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  Laravel如何优化应用性能?(缓存和优化命令)  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  详解vue.js组件化开发实践  Laravel如何处理表单验证?(Requests代码示例)  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  C++时间戳转换成日期时间的步骤和示例代码  Laravel如何实现模型的全局作用域?(Global Scope示例)  Android使用GridView实现日历的简单功能  JavaScript如何实现类型判断_typeof和instanceof有什么区别  新三国志曹操传主线渭水交兵攻略  如何用景安虚拟主机手机版绑定域名建站?  如何撰写建站申请书?关键要点有哪些?  如何用IIS7快速搭建并优化网站站点?  如何快速建站并高效导出源代码?  微信推文制作网站有哪些,怎么做微信推文,急?  深圳网站制作的公司有哪些,dido官方网站?  如何快速查询网站的真实建站时间?  JS弹性运动实现方法分析  奇安信“盘古石”团队突破 iOS 26.1 提权  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  高端企业智能建站程序:SEO优化与响应式模板定制开发  教学论文网站制作软件有哪些,写论文用什么软件 ?  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何升级到最新版本?(升级指南和步骤)  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  焦点电影公司作品,电影焦点结局是什么?  android nfc常用标签读取总结  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程