C++语言的前置++、后置++和前置--、后置--
小标 2018-07-25 来源 : 阅读 1386 评论 0

摘要:本文主要向大家介绍了C++语言的前置++、后置++和前置--、后置--,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

本文主要向大家介绍了C++语言的前置++、后置++和前置--、后置--,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

一、C++的前置++和后置++

   在C++中,运算符重载是你必须要掌握的重点,而前置++和后置++有什么区别呢?其实前置++和后置++是有关于

影响效率的问题,前置++比后置++的效率要高,原因是因为前置++不会产生一个临时对象而去直接进行++运算,而后

置++要先产生一个临时对象来保存当前数据,然后进行++运算,最后返回临时对象,这样无形中会增加额外的开销,

这样肯定会影响效率的。下面是两种++运算的重载函数:

 

class Base

{

   public:

     Base(int data=0):m_data(data)

     {

     }

     ~Base()

     {}

   public:

     Base& operator++()

     {

        m_data++;

        return *this;

      }

     Base operator++(int)

     {

        Base tmp(m_data);

        m_data++;

        return tmp;

     }

   private:

     int m_data;

};

 

       在上面的重载++运算符的函数中,第一个函数就是前置++运算符的重载,因为是返回的是当前对象,所以函数可

以引用返回。第二个函数就是后置++运算符的重载,因为在其内部创建了一个临时对象用来进行++运算,并且最后返

回的是临时对象的值,所以函数不能以引用返回,而且为了区分是前置++还是后置++运算符的重载,则添加一个参数

用于区别。

二、C++的前置--和后置--

   同样的既然有前置++和后置++就会有前置--和后置--,下面是两种--运算符的重载:

 

class Base

{

   public:

     Base(int data=0):m_data(data)

     {

     }

     ~Base()

     {}

   public:

     Base& operator--()

     {

        m_data--;

        return *this;

      }

     Base operator--(int)

     {

        Base tmp(m_data);

        m_data--;

        return tmp;

     }

   private:

     int m_data;

};

 

  其解释和上面的++运算符重载解释基本相同,这里就不再次赘述了。

 

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程