#include <iostream>
using namespace std;
class Singledog
{
friend const Singledog operator+(const Singledog &L, const Singledog &R);
friend const Singledog operator-(const Singledog &L, const Singledog &R);
friend const Singledog operator*(const Singledog &L, const Singledog &R);
friend const Singledog operator/(const Singledog &L, const Singledog &R);
friend bool operator>(const Singledog &L, const Singledog &R);
friend bool operator!=(const Singledog &L, const Singledog &R);
friend bool operator==(const Singledog &L, const Singledog &R);
friend bool operator<(const Singledog &L, const Singledog &R);
// friend Singledog &operator =(Singledog &L, const Singledog &R);
friend Singledog &operator+=(Singledog &L, const Singledog &R);
friend Singledog &operator-=(Singledog &L, const Singledog &R);
friend Singledog &operator*=(Singledog &L, const Singledog &R);
friend Singledog &operator/=(Singledog &L, const Singledog &R);
private:
int a;
int b;
public:
Singledog(){};
Singledog(int a, int b):a(a),b(b)
{}
/*
const Singledog operator+(const Singledog &s) const
{
Singledog temp;
temp.a = a + s.a;
temp.b = b + s.b;
return temp;
}
const Singledog operator-(const Singledog &s) const
{
Singledog temp;
temp.a = a - s.a;
temp.b = b - s.b;
return temp;
}
const Singledog operator*(const Singledog &s) const
{
Singledog temp;
temp.a = a * s.a;
temp.b = b * s.b;
return temp;
}
const Singledog operator/(const Singledog &s) const
{
Singledog temp;
temp.a = a / s.a;
temp.b = b / s.b;
return temp;
}
bool operator>(const Singledog &R) const
{
if(a>R.a && b>R.b)
{
return true;
}
else
{
return false;
}
}
bool operator!=(const Singledog &R) const
{
if(a!=R.a && b!=R.b)
{
return true;
}
else
{
return false;
}
}
bool operator==(const Singledog &R) const
{
if(a==R.a && b==R.b)
{
return true;
}
else
{
return false;
}
}
bool operator<(const Singledog &R) const
{
if(a<R.a && b<R.b)
{
return true;
}
else
{
return false;
}
}
Singledog &operator=(const Singledog &R)
{
a = R.a;
b = R.b;
return *this;
}
Singledog &operator+=(const Singledog &R)
{
a += R.a;
b += R.b;
return *this;
}
Singledog &operator-=(const Singledog &R)
{
a -= R.a;
b -= R.b;
return *this;
}
Singledog &operator*=(const Singledog &R)
{
a *= R.a;
b *= R.b;
return *this;
}
Singledog &operator/=(const Singledog &R)
{
a /= R.a;
b /= R.b;
return *this;
}
*/
void show()
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
};
const Singledog operator+(const Singledog &L, const Singledog &R)
{
Singledog temp;
temp.a = L.a + R.a;
temp.b = L.b + R.b;
return temp;
}
const Singledog operator-(const Singledog &L, const Singledog &R)
{
Singledog temp;
temp.a = L.a - R.a;
temp.b = L.b - R.b;
return temp;
}
const Singledog operator*(const Singledog &L, const Singledog &R)
{
Singledog temp;
temp.a = L.a * R.a;
temp.b = L.b * R.b;
return temp;
}
const Singledog operator/(const Singledog &L, const Singledog &R)
{
Singledog temp;
temp.a = L.a / R.a;
temp.b = L.b / R.b;
return temp;
}
bool operator>(const Singledog &L, const Singledog &R)
{
if(L.a>R.a && L.b>R.b)
{
return true;
}
else
{
return false;
}
}
bool operator!=(const Singledog &L, const Singledog &R)
{
if(L.a>R.a && L.b>R.b)
{
return true;
}
else
{
return false;
}
}
bool operator==(const Singledog &L, const Singledog &R)
{
if(L.a==R.a && L.b==R.b)
{
return true;
}
else
{
return false;
}
}
bool operator<(const Singledog &L, const Singledog &R)
{
if(L.a<R.a && L.b<R.b)
{
return true;
}
else
{
return false;
}
}
//Singledog &operator=(Singledog &L, const Singledog &R)
//{
// L.a = R.a;
// L.b = R.b;
// return L;
//}
Singledog &operator+=(Singledog &L, const Singledog &R)
{
L.a += R.a;
L.b += R.b;
return L;
}
Singledog &operator-=(Singledog &L, const Singledog &R)
{
L.a -= R.a;
L.b -= R.b;
return L;
}
Singledog &operator*=(Singledog &L, const Singledog &R)
{
L.a *= R.a;
L.b *= R.b;
return L;
}
Singledog &operator/=(Singledog &L, const Singledog &R)
{
L.a /= R.a;
L.b /= R.b;
return L;
}
int main()
{
Singledog s1(404, 6);
Singledog s2(74, 80);
Singledog s3 = s1 + s2;
Singledog s4 = s2 + s1;
Singledog s5 = s1 * s2;
Singledog s6 = s1 / s2;
if(s3>s2)
{
cout << "s3>s2" << endl;
}
if(s3!=s2)
{
cout << "s3!=s2" << endl;
}
if(s3==s4)
{
cout << "s3==s4" << endl;
}
if(s2<s3)
{
cout << "s2<s3" << endl;
}
s3=s2;
s3.show();
s3+=s2;
s4-=s2;
s5*=s2;
s6/=s2;
s3.show();
s4.show();
s5.show();
s6.show();
return 0;
}
10.10作业
最新推荐文章于 2024-07-16 21:06:27 发布