使用C ++中的非成员或自由函数重载二进制减号(-)运算符
先决条件:运算符重载及其规则
在这里,我们将实现一个C++程序,该程序将演示使用非成员或自由成员函数进行运算符重载(二进制减号(-))。
注意:这种类型的非成员函数将访问类的私有成员。因此,该功能必须为好友类型(好友功能)。
看程序:
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(600); 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 : 600 S2 : Value is : 200 S3 : Value is : 400