c++重载递增递减运算符

本文展示了在C++中如何重载前缀和后缀自增运算符。通过一个简单的`SimpleClass`类,演示了两种自增操作如何影响对象的状态。在示例中,`sc1`使用后缀自增,其`apple`数量保持为5,而`sc2`使用前缀自增,其`apple`数量增加到6。这体现了前缀自增先增加后返回,后缀自增先返回后增加的特性。
摘要由CSDN通过智能技术生成

在c++里面重载自增运算符,因此存在前缀后缀的关系,所以用带一个int参数的方法表示后缀,以和前缀区别开来。

// 前缀和后缀运算符重载
// 以++为例

#include<iostream>

class SimpleClass
{
private:
	int apple;
public:
	SimpleClass(int apple_) :apple(apple_) {}

	SimpleClass operator++(int); // 后缀
	SimpleClass operator++(); // 前缀

	void displayAppleNumber() {
		std::cout << this->apple << std::endl;
	}
};

SimpleClass SimpleClass::operator++(int) {
	SimpleClass ret = *this;
	this->apple++;
	return ret;
}

SimpleClass SimpleClass::operator++() {
	SimpleClass ret = *this;
	++this->apple;
	return ret;
}

int main()
{
	SimpleClass sc(5), sc1(0), sc2(0);
	sc1 = sc++;
	sc2 = ++sc;

	sc1.displayAppleNumber();
	sc2.displayAppleNumber();

	return 0;
}

现在sc1sc2都是由sc初始化来的,区别就只有前缀和后缀,以我们的经验来看sc1apple数量应该是5,sc2apple数量应该是6。结果也确实是这样的:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值