如何使用C ++中的非成员或自由函数重载减量运算符?

先决条件:运算符重载及其规则

在这里,我们将实现一个C ++程序,该程序将演示使用非成员函数或自由成员函数进行运算符重载(递减)

注意:这种类型的非成员函数将访问类的私有成员。因此,该功能必须为好友类型(好友功能)。

看程序:

using namespace std;
#include <iostream>

//示例类演示操作符重载
class Sample
{
	//私有数据成员
	private: 
		int value;
	
	public:     
	//参数化构造函数
	Sample(int c)
	{ value = c;}      

	//运算符重载声明
	//朋友功能
	friend Sample operator--(Sample &S);

	//函数打印值 
	void printValue()
	{
		cout<<"Value is : "<<value<<endl;
	}
};

//友元函数(运算符重载) 
Sample operator--(Sample &S)
{
	--S.value;       
	return S;
}
	
//主程序
int main(){
	int i = 0;
	//对象声明,
	//这里参数化的构造函数将被称为
	Sample S1(100);

	for(i=0;i<5;i++)
	{
		//运算符重载 
		--S1;
		S1.printValue();
	}

	return 0;    
}

输出结果

Value is : 99
Value is : 98
Value is : 97
Value is : 96
Value is : 95