在类结构体中,运用 成员函数或友元函数 实现算术运算符重载
#include <iostream>using namespace std;class Stu
{friend const Stu operator/(const Stu &R,const Stu &L);friend const Stu operator%(const Stu &R,const Stu &L);
private:int a;int b;
public:Stu(){}Stu(int i,int k):a(i),b(k){cout << "构造函数" << this << endl;}const Stu operator+(const Stu &r) const{Stu t;t.a=this->a+r.a;t.b=b+r.b;return t;}const Stu operator-(const Stu &r) const{Stu t;t.a=a-r.a;t.b=b-r.b;return t;}const Stu operator*(const Stu &r) const{Stu t;t.a=this->a*r.a;t.b=b*r.b;return t;}void show(){cout << a << '\t' << b << endl;}
};const Stu operator/(const Stu &R,const Stu &L)
{Stu t2;t2.a=R.a/L.a;t2.b=R.b/L.b;return t2;
}
const Stu operator%(const Stu &R,const Stu &L)
{Stu t2;t2.a=R.a%L.a;t2.b=R.b%L.b;return t2;
}int main()
{Stu s1(1,2);Stu s2(3,4);Stu a1,a2,a3,a4;a1=s1+s2-s1+s2;a2=s1*s2;a3=s2/s1;a4=s2%s1;a1.show();a2.show();a3.show();a4.show();cout << "Hello World!" << endl;return 0;
}
实现效果