重载操作符 ++
++ 有两种使用方法, 一种 a++, 一种 ++a. 刚学的时候一脸蒙蔽也不知道这样有何意义, 后来得知其中的区别. 下面记录一下我的学习记录.
a++ 实现:
- const int operator++(int)
- {
- int temp = a;
- a=a+1;
- return temp;// 该处返回的是一个值
- }
++a 实现:
- base& operator++()
- {
- a+=1;
- return *this;// 返回当前对象
- }
1, 因为值不能为左值, 所以 a++ 不能为左值.++a 可以为左值.
2, 再者可以看出, a++ 返回的是加之前的值 temp.++a 返回的本对象 (加之后的值). 这也就能解释为什么 ++a 先自加, a++ 后自加.
来源: http://www.bubuko.com/infodetail-2781136.html