在类结构体中,运用 成员函数或友元函数 实现算术运算符重载
cpp
#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;
}
实现效果