思维导图:
2>成员函数版本实现算术运算符的重载
全局函数版本实现算术运算符的重载
#include <iostream>
using namespace std;
class Sor
{
private:
int a;
int b;
public:
Sor()
{}
Sor(int a,int b):a(a),b(b)
{}
const Sor operator+(const Sor &other)const
{
Sor temp;
temp.a=this->a+other.a;
temp.b=this->b+other.b;
return temp;
}
const Sor operator-(const Sor &other)const
{
Sor temp;
temp.a=this->a-other.a;
temp.b=this->b-other.b;
return temp;
}
const Sor operator%(const Sor &other)const
{
Sor temp;
temp.a=this->a%other.a;
temp.b=this->b%other.b;
return temp;
}
friend const Sor operator*(const Sor &L,const Sor &R);
friend const Sor operator/(const Sor &L,const Sor &R);
void show()
{
cout << "a = " << a << " b = " << b << endl;
}
};
const Sor operator*(const Sor &L,const Sor &R)
{
Sor temp;
temp.a=L.a*R.a;
temp.b=L.b*R.b;
return temp;
}
const Sor operator/(const Sor &L,const Sor &R)
{
Sor temp;
temp.a=L.a/R.a;
temp.b=L.b/R.b;
return temp;
}
int main()
{
Sor s1(2,3);
Sor s2(4,5);
Sor s3;
s3=s1+s2;
s3.show();
s3=s2-s1;
s3.show();
s3=s1*s2;
s3.show();
s3=s2/s1;
s3.show();
s3=s1%s2;
s3.show();
return 0;
}