全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈C++类型转化(运算符重载函数)和基本运算符重载(自增自减)

类型转化(运算符重载函数)

用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据)。在C++提供类型转换函数(type conversion function)来解决这个问题。类型转换函数的作用是将一个类的对象转换成另一类型的数据。

类型转换函数的一般形式为:

operator 类型名( ){
  实现转换的语句
}

下面是简单实现。这时候,Base起了两方面的作用:类和数据类型。系统会在需要的时候自动调用对应的类方法。

#include <iostream>
using namespace std;

class Base{
  private:
    float x;
    int y;
  public:
    Base (float xx=0,int yy=0){
      x = xx;
      y = yy;
    }
    operator float (){
      return x;
    }
    operator int (){
      return y;
    }
    void display(){
      cout<<"x is :"<<x<<";y is :"<<y<<endl;
    }
};

int main()
{
  Base base(1.0,2);
  base.display();
  int y= base;
  float x= base;
  cout<<"NewX is :"<<x<<"NewY is:"<<y<<endl;
  return 0;
}

基本运算符重载(自增自减)

主要总结 自增自减的前置和后置的用法。其他的加减乘除较简单。

简单的代码实现(纯语法)

#include <iostream>
using namespace std;

class Base{
  private:
    float x;
    int y;
  public:
    Base (float xx=0,int yy=0){
      x = xx;
      y = yy;
    }
    operator float (){
      return x;
    }
    operator int (){
      return y;
    }
    Base operator ++(){//前置 ++
      x++;
      y++;
      return *this;
    } 
    Base operator --(){
      x--;
      y--;
      return *this;
    }
    Base operator ++(int ){//后置 ++
      Base temp = *this;
      ++(*this);
      return temp;
    }
    Base operator --(int ){
      Base temp = *this;
      --(*this);
      return temp;
    }
    void display(){
      cout<<"x is :"<<x<<";y is :"<<y<<endl;
    }
    
};

int main()
{
  Base base(1.0,1);
  Base tem = base++;
  base.display();
  tem.display(); 
  
  Base base2(1.0,1);
  tem = ++base2;
  base.display();
  tem.display(); 
  return 0;
}

发现:

后置和前置的区别是有无int参数。

后置需要申请新的空间,大小是类的大小。所以,后置操作会有额外的时间空间开销。

尽量使用前置操作:如:for (int i=0;i<n;++i)

以上这篇浅谈C++类型转化(运算符重载函数)和基本运算符重载(自增自减)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# c  # 运算符重载函数  # 详解C++函数类型与重载函数  # C++类重载函数的function和bind使用示例  # 一文详解C++子类函数为什么不能重载父类函数  # 运算符  # 给大家  # 转换成  # 转换为  # 会有  # 加减乘除  # 其他的  # 会在  # 希望能  # 这篇  # 浅谈  # 两方面  # 小编  # 解决这个问题  # 大家多多  # 有无  # 这时候  # xhtml  # brush  # pre 


相关文章: Swift中switch语句区间和元组模式匹配  高性价比服务器租赁——企业级配置与24小时运维服务  如何解决ASP生成WAP建站中文乱码问题?  如何在万网ECS上快速搭建专属网站?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  高防服务器租用首荐平台,企业级优惠套餐快速部署  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  用v-html解决Vue.js渲染中html标签不被解析的问题  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  专业商城网站制作公司有哪些,pi商城官网是哪个?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  北京建设网站制作公司,北京古代建筑博物馆预约官网?  如何在阿里云域名上完成建站全流程?  如何选择CMS系统实现快速建站与SEO优化?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  如何在万网自助建站中设置域名及备案?  如何快速搭建高效服务器建站系统?  如何高效完成独享虚拟主机建站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  建站之星2.7模板:企业网站建设与h5定制设计专题  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在七牛云存储上搭建网站并设置自定义域名?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  建站主机如何选?高性价比方案全解析  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何正确下载安装西数主机建站助手?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在橙子建站上传落地页?操作指南详解  建站之星安装失败:服务器环境不兼容?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何快速查询网站的真实建站时间?  如何基于云服务器快速搭建个人网站?  动图在线制作网站有哪些,滑动动图图集怎么做?    为什么Go需要go mod文件_Go go mod文件作用说明  如何通过虚拟主机快速完成网站搭建?  网站制作模板下载什么软件,ppt模板免费下载网站?  网站制作难吗安全吗,做一个网站需要多久时间?  ui设计制作网站有哪些,手机UI设计网址吗?  利用JavaScript实现拖拽改变元素大小  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何基于云服务器快速搭建网站及云盘系统?  建站之星如何修改网站生成路径?  如何通过FTP服务器快速搭建网站?  网站制作费用多少钱,一个网站的运营,需要哪些费用? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。