重载前自增运算符和后自增运算符
- 如果只重载了前自增运算符,那么后自增运算符会与重载后的前自增运算符绑定,使两者的行为相同。如果想避免这种情况,在重载自增运算符时应该同时重载前自增运算符和后自增运算符。
- 为了区分前自增运算符和后自增运算符的重载函数,后自增运算符的重载函数的参数列表中需要增加一个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.默认构造函数(空形参,空函数体) 2.默认拷贝构造函数(浅拷贝,也叫值拷贝.字节拷贝) 3.析构函数(空形参,空函数体.析构函数要求形参列表必须是空的,所以 ...
- C语言两个自增相加,C语言前自增与后自增
C语言前自增与后自增教程 在 前自减与后自减的区别是前自减是先自减后赋值,后自减是先赋值后自减. C语言前自增与后自增区别 语法 运算符 语法 例子 结果 后自增 a++ int a = 0; int ...
- JS基础语法(03)-前自增与后自增区别
/*前自增与后自增的异同点相同点:无论是前自增还是后自增,对于变量而言,没有区别,都是自身+1不同点:* 前自增:先+1(变量自身+1),后赋值(将变量的值赋值给自增表达式的结果)* 后自增:先赋值, ...
- 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式
文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...
- 重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符...
一.基本概念 重载的运算符时具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.和其他函数一样,重载的运算符也包含返回类型.参数列表以及函数体. 重载运算符函数的参数 ...
- 后置递增运算符(JS)
后置递增运算符(JS) <!DOCTYPE html> <html lang="en"><head><meta charset=" ...
- 数据结构:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的
题目: 设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后:在k1值相同的情况下,再看k2,k2值小的在前,大的在后.满足这种要求的排 ...
- 丁书苗发家过程披露:结识刘志军后财富增10倍
http://money.163.com/12/0109/07/7NAFOJTN00253B0H_all.html#p1 丁书苗发家过程披露:结识刘志军后财富增10倍 2012-01-09 07:44 ...
- java中关于++x前加加和x++后加加的疑惑!
java中关于前加加和后加加的疑惑! 大家看下面的代码和截图(运行结果在截图中可以看到),不知道会不会跟我一样的感觉,会不会觉得自己对前加加和后加加的知识点还没学懂呢? 我甚至都一度怀疑是不是自己理解 ...
- glibc降级后怎么恢复 linux_驾驶证增驾年龄是怎么要求的?驾驶证降级后多久增驾...
一.驾驶证增驾年龄是怎么要求的? 1.年满18周岁可以参加c1,c2学习.考试; 2.年满21周岁可以参加c1+b1学习.考试,且c1驾照须年满3年; 3.年满21周岁可以参加b2学习.考试; 4.年 ...
最新文章
- pgsql 相关的命令
- 这个AI模型用最少的训练数据学习对象之间的关系
- 测试几款STC下载电路
- React-Native中的flexbox布局的使用
- Lesson 7 (3) 深入理解PyTorch与PyTorch库架构
- AttributeError系列之:AttributeError: module 'scipy.misc' has no attribute 'imread'报错问题
- 【TensorFlow-windows】MobileNet理论概览与实现
- HDU 1257 最少拦截系统(贪心)
- [Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递
- zynq中mgtx应用_Zynq7000系列之芯片引脚功能综述
- ajax juey,锋利的qjuey-ajax
- mysql 5.5 5.6 备份库_mysql5.5备份数据库里面除系统库外的所有数据库
- Linux —— shell认识与基础命令
- Android中为APP创建快捷方式的原理(自己的理解)
- vue 图片切换动态绑定
- html2canvas 如何去掉空白区域_在Ai中,如何快速制作牛奶字效果
- apue学习笔记(第六章 系统数据文件和信息)
- metasequoia :Summoner
- 在C4D中如何切换中英文
- button按钮 去除基本样式