自增运算符的重载

运算符的重载有两种方法:

1、通过成员函数来重载

2、通过友元函数进行重载

重载的一个重要的特点:

1、成员函数参数的个数 = 几目运算符 - 1;

例如: = ,+,+=,这些运算符都是双目运算符,所以类的成员函数的参数是1.

2、友元函数参数的个数 = 几目运算符。


一般说来,单目运算符最好被重载为成员函数,双目运算符被重载为友元函数。

下面是前置自增运算符和后置自增运算符的重载。

#include<iostream>

using namespace std;

class A
{

public:
	A(int i):count(i)
	{
	
	}
	A& operator++();


	A& operator++(int);

	void print() const
	{
	
		cout<<"count = "<<count<<endl;
	}
	


private:

	int	count;
};

A& A::operator++()
	{
	
		cout<<"调用前置运算符\n";
		++count;
		return *this;
	}

A& A:: operator++(int)
	{
	
		cout<<"调用后置运算符\n";
		count++;
		return *this;
	}

int main()
{
	A a(5);
	a++;
	a.print();

	cout<<"\n";

	++a;
	a.print();


	return 0;
}


程序执行的结果是:



至于为什么重载函数的返回时是引用?

答:再返回的时候,可以避免创建一个*this的副本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值