使用C ++中的非成员或自由函数重载二进制加号(+)运算符

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

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

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

看程序:

using namespace std;
#include <iostream>

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

	//参数化构造函数
	Sample(int c)
	{ value = c;}      

	//使运算符重载声明为 
	//朋友功能
	friend Sample operator+(Sample &S1, Sample &S2);

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

//overator重载函数定义
Sample operator+(Sample &S1, Sample &S2)
{
	Sample S;
	S = S1.value+S2.value;       
	return S;
}

//主程序
int main(){
	int i = 0;
	//通过调用参数化构造函数来声明对象
	Sample S1(100);
	Sample S2(200);       
	Sample S3;

	//添加对象(二进制+运算符重载)
	S3 = S1 + S2;

	cout<<"S1 :"<<endl; 
	S1.printValue();

	cout<<"S2 :"<<endl;
	S2.printValue();

	cout<<"S3 :"<<endl;
	S3.printValue();

	return 0;    
}

输出结果

S1 :
Value is : 100
S2 :
Value is : 200
S3 :
Value is : 300