• 如果只重载了前自增运算符,那么后自增运算符会与重载后的前自增运算符绑定,使两者的行为相同。如果想避免这种情况,在重载自增运算符时应该同时重载前自增运算符和后自增运算符。
  • 为了区分前自增运算符和后自增运算符的重载函数,后自增运算符的重载函数的参数列表中需要增加一个int类型的参数,在使用中完全可以忽略这个参数,编译器会对其做特殊处理。
  • 前自增运算符和后自增运算符的重载函数在实现上也有区别。前自增运算符的重载函数先自增,然后返回对象自身的引用;后自增运算符先创建一个对象的副本,然后使用前自增操作调用前自增运算符的重载函数,最后返回对象的副本

class Step{

private:

int num;

public:

Step(int num){this->num=num;}

int getStep(){return num;}

Step& operator++();

Step operator++(int);

};

Step& Step::operator++(){

num++;

return *this;

}

Step Step::opearator++(int){

Step temp=*this;

++(*this);

return temp;

}

重载前自增运算符和后自增运算符相关推荐

  1. 运算符重载(加减运算符、前置加加(减减)后置加加(减减)运算符、赋值运算符、输入输出运算符、关系运算符、函数调用)

    编译器对于一个类会默认生成以几种函数: 1.默认构造函数(空形参,空函数体) 2.默认拷贝构造函数(浅拷贝,也叫值拷贝.字节拷贝) 3.析构函数(空形参,空函数体.析构函数要求形参列表必须是空的,所以 ...

  2. C语言两个自增相加,C语言前自增与后自增

    C语言前自增与后自增教程 在 前自减与后自减的区别是前自减是先自减后赋值,后自减是先赋值后自减. C语言前自增与后自增区别 语法 运算符 语法 例子 结果 后自增 a++ int a = 0; int ...

  3. JS基础语法(03)-前自增与后自增区别

    /*前自增与后自增的异同点相同点:无论是前自增还是后自增,对于变量而言,没有区别,都是自身+1不同点:* 前自增:先+1(变量自身+1),后赋值(将变量的值赋值给自增表达式的结果)* 后自增:先赋值, ...

  4. 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式

    文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...

  5. 重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符...

    一.基本概念 重载的运算符时具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.和其他函数一样,重载的运算符也包含返回类型.参数列表以及函数体. 重载运算符函数的参数 ...

  6. 后置递增运算符(JS)

    后置递增运算符(JS) <!DOCTYPE html> <html lang="en"><head><meta charset=" ...

  7. 数据结构:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的

    题目: 设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后:在k1值相同的情况下,再看k2,k2值小的在前,大的在后.满足这种要求的排 ...

  8. 丁书苗发家过程披露:结识刘志军后财富增10倍

    http://money.163.com/12/0109/07/7NAFOJTN00253B0H_all.html#p1 丁书苗发家过程披露:结识刘志军后财富增10倍 2012-01-09 07:44 ...

  9. java中关于++x前加加和x++后加加的疑惑!

    java中关于前加加和后加加的疑惑! 大家看下面的代码和截图(运行结果在截图中可以看到),不知道会不会跟我一样的感觉,会不会觉得自己对前加加和后加加的知识点还没学懂呢? 我甚至都一度怀疑是不是自己理解 ...

  10. glibc降级后怎么恢复 linux_驾驶证增驾年龄是怎么要求的?驾驶证降级后多久增驾...

    一.驾驶证增驾年龄是怎么要求的? 1.年满18周岁可以参加c1,c2学习.考试; 2.年满21周岁可以参加c1+b1学习.考试,且c1驾照须年满3年; 3.年满21周岁可以参加b2学习.考试; 4.年 ...

最新文章

  1. pgsql 相关的命令
  2. 这个AI模型用最少的训练数据学习对象之间的关系
  3. 测试几款STC下载电路
  4. React-Native中的flexbox布局的使用
  5. Lesson 7 (3) 深入理解PyTorch与PyTorch库架构
  6. AttributeError系列之:AttributeError: module 'scipy.misc' has no attribute 'imread'报错问题
  7. 【TensorFlow-windows】MobileNet理论概览与实现
  8. HDU 1257 最少拦截系统(贪心)
  9. [Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递
  10. zynq中mgtx应用_Zynq7000系列之芯片引脚功能综述
  11. ajax juey,锋利的qjuey-ajax
  12. mysql 5.5 5.6 备份库_mysql5.5备份数据库里面除系统库外的所有数据库
  13. Linux —— shell认识与基础命令
  14. Android中为APP创建快捷方式的原理(自己的理解)
  15. vue 图片切换动态绑定
  16. html2canvas 如何去掉空白区域_在Ai中,如何快速制作牛奶字效果
  17. apue学习笔记(第六章 系统数据文件和信息)
  18. metasequoia :Summoner
  19. 在C4D中如何切换中英文
  20. button按钮 去除基本样式

热门文章

  1. 使用WebDeployment Project改善VS2005发布网站
  2. 悟道web标准:前端性能优化
  3. 如何在阿里云里申请并使用免费https证书SSL、nginx下配置https证书
  4. php使用到的函数记录一
  5. typescript-react-webpack4 起手与踩坑
  6. 因为机遇,不会轻易悲伤
  7. linux命令比较命令,Linux命令 比较文件
  8. Java研发方向如何准备BAT技术面试
  9. windows server2003的邮箱服务器安装详细步骤
  10. 栈和队列基本概念,顺序栈的表示和实现