C++ 如何重载前置++和后置++运算符

78 篇文章 1 订阅
27 篇文章 2 订阅

参考链接:点击打开链接

注意一下几点: 
1、前置++重载时没有参数而后置++重载时有参数。不会使用其参数,仅仅是区分用。可以理解为前置++后面有参数了,所以不需要参数 

2、前置++需要返回引用,因为重载自加运算符后可以返回对象的引用, 以方便在表达式中连续使用。而后置++返回的不是引用,所以不能进行连续使用。

3.后置运算符返回的值是temp,需要注意。因为是后加。

实现代码如下:

#include<iostream>
using namespace std;

class point{
public:
	point(int a,int b):x(a),y(b){}
	
	point& operator++(){//前置运算符,需要引用返回,不需要参数。返回自增后的值,且返回的是一个左值 
		x++;
		y++;
		return *this;
	}
	point operator++(int){//后置++,不需要引用返回,需要参数区分。返回自增前的值,且返回的是一个右值
		point temp(x,y); 
		x++;
		y++;
		//cout<<"x1 = "<<temp.x<<",y1 = "<<temp.y<<endl;
		
		return temp;
	}
	
	void show(){
		cout<<"x = "<<x<<",y = "<<y<<endl;
	}
private:
	int x;
	int y;
}; 

int main(){
	point p(2,3);
	p.show();
	
	p++;
	p.show();
	
	++p;
	p.show();
	
	return 0;
}

运行结果如下:


  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值