Java 赋值运算符重载,C++ 递增递减运算符重载 | 菜鸟教程

递增和递减运算符重载

1、递增和递减一般是改变对象的状态,所以一般是重载为成员函数。

2、重载递增递减,一定要和指针的递增递减区分开。因为这里的重载操作的是对象,而不是指针(由于指针是内置类型,指针的递增递减是无法重载的),所以一般情况的递增递减是操作对象内部的成员变量。

3、递增和递减分为前置和后置情况,a = ++b;(前置), a = b++;(后置)。因为符号一样,所以给后置版本加一个int形参作为区分,这个形参是0,但是在函数体中是用不到的,只是为了区分前置后置。例如:

#include

#include

#include

#include

using namespace std;

// 例如这里的重载递增就是为了增加pos的值

class ca

{

public:

int pos;

//前置递增就是增加当前对象的pos的值,并且返回当前对象

ca operator++(){

pos++;

return *this;

}

//后置递增就是增加当前对象的pos的值,并且返回增加pos之前的该对象

ca operator++(int){

ca ret = *this;

++*this; //这个会调用上面的函数,其实这里可以换成pos++;

return ret;

}

};

int main()

{

ca a, b;

a.pos = 1;

b = a++;

cout << "b1:" << b.pos << endl; // b1:1

b = ++a;

cout << "b2:" << b.pos << endl; // b1:3

return 0;

}

输出结果:

b1:1

b2:3

wdb

wdb

424***031@qq.com3年前 (2018-04-08)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值