全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何通过万网虚拟主机快速搭建网站?  已有域名如何免费搭建网站?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  如何用低价快速搭建高质量网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  建站为何优先选择香港服务器?  宝塔面板创建网站无法访问?如何快速排查修复?  javascript中的try catch异常捕获机制用法分析  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何用PHP快速搭建CMS系统?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  建站之星后台密码遗忘或太弱?如何重置与强化?  如何规划企业建站流程的关键步骤?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  宝塔Windows建站如何避免显示默认IIS页面?  建站之星好吗?新手能否轻松上手建站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站之家VIP精选网站模板与SEO优化教程整合指南  TestNG的testng.xml配置文件怎么写  音乐网站服务器如何优化API响应速度?  广州营销型建站服务商推荐:技术优势与SEO优化解析  建站之星CMS五站合一模板配置与SEO优化指南  建站之星展会模版如何一键下载生成?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  湖北网站制作公司有哪些,湖北清能集团官网?  宝塔建站后网页无法访问如何解决?  建站之星价格显示格式升级,你的预算足够吗?  如何用花生壳三步快速搭建专属网站?  如何用y主机助手快速搭建网站?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  C#怎么创建控制台应用 C# Console App项目创建方法  建站之星如何快速解决建站难题?  如何通过免费商城建站系统源码自定义网站主题与功能?  如何通过cPanel快速搭建网站?  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星安装后界面空白如何解决?  建站之星如何配置系统实现高效建站?  如何通过云梦建站系统实现SEO快速优化?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  建站主机与虚拟主机有何区别?如何选择最优方案?  北京营销型网站制作公司,可以用python做一个营销推广网站吗? 

您的项目需求

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