using namespace std;
class Per
{
friend const Per operator-(const Per &L,const Per &R);
friend bool operator<(const Per &L,const Per &R);
int a;
int b;
public:
//有参构造
Per(int a,int b):a(a),b(b)
{
}
//无参构造
Per(){}
//+运算符重载
const Per operator+(const Per &p) const
{
Per temp;
temp.a=a+p.a;
temp.b=b+p.b;
return temp;
}
//*运算符重载
const Per operator*(const Per &p) const
{
Per temp;
temp.a=a*p.a;
temp.b=b*p.b;
return temp;
}
// /运算符重载
const Per operator/(const Per &p) const
{
Per temp;
temp.a=a/p.a;
temp.b=b/p.b;
return temp;
}
//%运算符重载
const Per operator%(const Per &p) const
{
Per temp;
temp.a=a%p.a;
temp.b=b%p.b;
return temp;
}
//+=重载
Per &operator+=(const Per &p)
{
a+=p.a;
b+=p.b;
return *this;
}
//-=重载
Per &operator-=(const Per &p)
{
a-=p.a;
b-=p.b;
return *this;
}
//*=重载
Per &operator*=(const Per &p)
{
a*=p.a;
b*=p.b;
return *this;
}
// /=重载
Per &operator/=(const Per &p)
{
a/=p.a;
b/=p.b;
return *this;
}
//%=重载
Per &operator%=(const Per &p)
{
a%=p.a;
b%=p.b;
return *this;
}
//>重载
bool operator>(const Per &p)
{
if(a>p.a&&b>p.b)
{
return true;
}
else
return false;
}
//>=重载
bool operator>=(const Per &p)
{
if(a>=p.a&&b>=p.b)
{
return true;
}
else
return false;
}
//<=重载
bool operator<=(const Per &p)
{
if(a<=p.a&&b<=p.b)
{
return true;
}
else
return false;
}
//==重载
bool operator==(const Per &p)
{
if(a==p.a&&b==p.b)
{
return true;
}
else
return false;
}
//!=重载
bool operator!=(const Per &p)
{
if(a!=p.a&&b!=p.b)
{
return true;
}
else
return false;
}
void show()
{
cout << a << b << endl;
}
};
//<重载
bool operator<(const Per &L,const Per &R)
{
if(L.a<R.a&&L.b<R.b)
{
return true;
}
else
return false;
}
//-重载
const Per operator-(const Per &L,const Per &R)
{
Per temp;
temp.a=L.a-R.a;
temp.b=L.b-R.b;
return temp;
}
1010hw
本文详细描述了一个名为Per的C++类,重点介绍了其构造函数和各种算术及比较运算符的重载实现,包括加法(+),乘法(*),除法(/),取模(%),自增/减(-)以及赋值运算符(+=,*=,/=,%=)和比较运算符(>,>=,<=,==,!=)。
摘要由CSDN通过智能技术生成