前置++/--和后置++/--

简介:
对此一直理解不深,今日偶然之间发现自己根本没有理解他们.
今天我发现:
 cout<<a++<<endl;
 cout<<++a<<endl;
的值不同,a++返回的是原值,++a返回的是递加后的值.
我不禁冒了冷汗,写了这么多代码,居然会不明白这么简单的东西,还好之前代码没有出现问题.
我为此懊恼不已.细节往往是最重要的,诚然如此啊.

带着一个问题:为什么要分前置和后置?
大家都知道前置比后置要效率高,难道就只是为了效率而存在,显然不会,如果这样,后置就没有存在的任何理由.

class CInt {
  private:
    int m_value;
  //
}
;
CInt & CInt:: operator++( )  //  前置的是没有参数的,并且返回引用
{
  this->m_value+=1;
  return * this;
}

const CInt CInt::opeartor++(CInt)  //  后置的有一个匿名参数,并且返回const值
{
  CInt old = *this;
  ++(*this);
  return old;
}

看到这个算符重载的代码就很明白了.
后置++返回的是传入的参数,而前置传入的是引用,自然返回的也是引用,也就只能是改变的值.
目录
相关文章
|
存储 Linux 虚拟化
Vsphere创建内容库Iso以及创建esxi虚拟机
Vcenter创建虚拟机 1.创建iso内容库 1)点击内容库
1921 0
Vsphere创建内容库Iso以及创建esxi虚拟机
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用机器学习进行人脸颜值评分
利用机器学习进行人脸颜值评分
735 0
|
传感器 SQL 存储
为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。
5664 86
|
传感器 人工智能 算法
关于技术、业务、产品的一点思考
关于技术、业务、产品的一点思考
742 0
|
机器学习/深度学习 存储 分布式计算
机器学习 PAI 如何上传训练数据|学习笔记
快速学习机器学习 PAI 如何上传训练数据。
620 0
机器学习 PAI 如何上传训练数据|学习笔记
Retrofit 自定义 Adapter 和 Converter + 源码分析
Retrofit 自定义 Adapter 和 Converter + 源码分析
|
安全 算法 Linux
配置 SSH 密钥
云效代码管理 Codeup 的代码仓库支持配置 HTTP(S) 和 SSH 两种访问协议,配置SSH 协议可以实现安全的免密认证,且性能比 HTTP(S) 协议更好(因为 HTTP 是无状态协议,需要多次连接和交互)。在使用 SSH 协议操作代码仓库前,首先需要生成并上传你的 SSH 公钥,完成 SSH 公钥和用户账号的对应。
1272 0
配置 SSH 密钥
|
存储 弹性计算 Linux
小白如何快速入门阿里云服务器,新手使用ECS教程说明
小白如何快速入门阿里云服务器,新手使用ECS教程说明文档
小白如何快速入门阿里云服务器,新手使用ECS教程说明
|
SQL 分布式计算 关系型数据库
Hive 数仓迁移 JindoFS/OSS 数据湖最佳实践
Hive 数仓是大多数迁移客户都会遇到的场景。在迁移过程中,不建议同时在新集群进行业务升级(比如从 Hive on MR 迁移到 Hive on Tez 或 Spark SQL等),这些业务升级可以在迁移完成后进行。1. 元数据同步Hive 元数据是对于 Hive 表来说非常关键,除了表结构信息,里面还记录着 Hive 表与底层文件系统的关联关系,许多上层服务都依赖 Hive 元数据提供服务。a.
940 0