先决条件:运算符重载及其规则
在这里,我们将实现一个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