C++研发 【++运算符重载问题】

一、问题

之前敲运算符重载没有遇到什么问题,今天唯独今天敲++重载的时候,出现了以下错误:

无参有参的构造函数均写了,这样写也可以通过:

二、解决方法

我发现,++运算符之所以会报错,是因为他和前面的运算符,如+,-,有一个质的区别:

根据参数的顺序,运算结果会有所差别。

比如,当你只写一个++a的函数时,

那么系统无法识别你到底是++a还是a++。

于是,我把两个分别写完了:

	Person& operator++()
	{
		this->age++;
		return *this;
	}

	Person& operator++(int)
	{
		Person temp = *this;
		this->age++;
		return temp;
	}

再运算,就没有任何问题了。

然而,注释掉上述两段代码中的任意一个,程序都会报错。

三、总结

遇到和顺序有关的运算符,如果需要重载,一定要把每一个类别写清楚。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值