c++重载运算符_终于搞明白++i/i++的区别|单目运算符重载为成员函数

dcf894542ee2cbe9a6776d30677692ad.png

平时++/--这两个单目运算符基本都会用在for循环,之前理解他们的区别只是:

1、++i:先++,再循环

2、i++:先循环,再++

其实,这种说话是有道理的,但是很模糊,直到学到<单目运算符重载为成员函数>的时候,我才真正的搞明白,不禁感叹:C++机制 !!!

举个完整的例子 :《将前置++和后置++重载为时钟类的成员函数》

.hpp文件:

```

#ifndef ________hpp

```

.cpp文件

```

#include 

```

main.cpp

```

#include 

```

运行结果:

```

23

```

其实,大家已经在.cpp文件中发现了,前置++/后置++返回的东西是不一样的:

前置++返回的是引用类型,是将++后的地址返回了,当然就是用+完之后的结果进行循环或者显示了;也可以理解成&的加入,实现了参数的双向传递;

后置++返回的是副本,是用+1前的结果进行循环或者显示,但此时内存地址上的变量已经暗自+1,只是返回的是之前的副本而已;同样可以理解成是参数的单向传递。

因为前置++/后置++的重载函数名字都是operator ++,所为为了区分,

前置++的重载函数没有形参;

后置++的重载函数有形参(int);

仅仅是为了区分,函数体的实现是不应该使用这个参数的。

其实,这里说的,和我之前的《拷贝构造函数的歪解》是很类似的,道理相通。希望大家好好看一下:

https://blog.csdn.net/weixin_45826012/article/details/102865017​blog.csdn.net

本人技术水平有限,若有错误或不当之处,可以在本号内反馈给我,一起交流一起学习!

b50901d3cb25b16cb9e54417d92f9886.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值