
- #include
-
- using namespace std;
-
- class Stu
- {
- friend const Stu operator+(const Stu &L,const Stu &R);
- friend const Stu operator-(const Stu &L,const Stu &R);
- friend const Stu operator*(const Stu &L,const Stu &R);
- friend const Stu operator/(const Stu &L,const Stu &R);
- friend const Stu operator%(const Stu &L,const Stu &R);
- friend bool operator<(const Stu &L, const Stu &R);
- friend bool operator==(const Stu &L, const Stu &R);
- friend bool operator>(const Stu &L, const Stu &R);
-
- friend Stu operator+=(Stu &L,const Stu &R);
- friend Stu operator-=(Stu &L,const Stu &R);
- friend Stu operator*=(Stu &L,const Stu &R);
- friend Stu operator/=(Stu &L,const Stu &R);
- friend Stu operator%=(Stu &L,const Stu &R);
-
- private:
- int a;
- int b;
- public:
- Stu(){}
- Stu(int a,int b):a(a),b(b)
- {}
-
- void show()
- {
- cout << "a = " << a << " b = " << b << endl;
- }
-
- };
-
- const Stu operator+(const Stu &L,const Stu &R)
- {
- Stu temp;
- temp.a = L.a + R.a;
- temp.b = L.b + R.b;
- return temp;
- }
- const Stu operator-(const Stu &L,const Stu &R)
- {
- Stu temp;
- temp.a = L.a - R.a;
- temp.b = L.b - R.b;
- return temp;
- }
- const Stu operator*(const Stu &L,const Stu &R)
- {
- Stu temp;
- temp.a = L.a * R.a;
- temp.b = L.b * R.b;
- return temp;
- }
- const Stu operator/(const Stu &L,const Stu &R)
- {
- Stu temp;
- temp.a = L.a / R.a;
- temp.b = L.b / R.b;
- return temp;
- }
- const Stu operator%(const Stu &L,const Stu &R)
- {
- Stu temp;
- temp.a = L.a % R.a;
- temp.b = L.b % R.b;
- return temp;
- }
-
- bool operator<(const Stu &L, const Stu &R)
- {
- if(L.a
b - {
- return true;
- }
- else
- {
- return false;
- }
- }
- bool operator==(const Stu &L, const Stu &R)
- {
- if(L.a==R.a && L.b==R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- bool operator>(const Stu &L, const Stu &R)
- {
- if(L.a>R.a && L.b>R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- Stu operator+=(Stu &L,const Stu &R)
- {
- L.a += R.a;
- L.b += R.b;
- return L;
- }
- Stu operator-=(Stu &L,const Stu &R)
- {
- L.a -= R.a;
- L.b -= R.b;
- return L;
- }
- Stu operator*=(Stu &L,const Stu &R)
- {
- L.a *= R.a;
- L.b *= R.b;
- return L;
- }
- Stu operator/=(Stu &L,const Stu &R)
- {
- L.a /= R.a;
- L.b /= R.b;
- return L;
- }
- Stu operator%=(Stu &L,const Stu &R)
- {
- L.a %= R.a;
- L.b %= R.b;
- return L;
- }
-
- int main()
- {
- Stu s1(1,1);
- Stu s2(13,52);
- Stu s3 = s1 + s2;
- Stu s4 = s2 - s1;
- Stu s5 = s1 * s2;
- Stu s6 = s1 / s2;
- Stu s7 = s1 % s2;
- s3.show();
- s4.show();
- s5.show();
- s6.show();
- s7.show();
- s3 += s1;
- s3.show();
- s4 -= s1;
- s4.show();
- s5 *= s1;
- s5.show();
- s6 /= s1;
- s6.show();
- s7 %= s1;
- s7.show();
-
- if(s2 < s3)
- {
- cout << "s2 < s3" << endl;
- }
- if(s2 == s5)
- {
- cout << "s2 == s5" << endl;
- }
- if(s2 > s4)
- {
- cout << "s2 > s4" << endl;
- }
-
-
- return 0;
- }
