c++day4

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 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:

    string name;
    int a;
    int b;
public:
    Stu()
    {

    }
        void happen() const
        {
            cout << "有const";
            cout << "name = " << name << endl;
        }
    void happen()
    {
        cout << "无const";
        cout << "name = " << name << endl;
    }
    //成员内运算符重载
//    Stu operator-(const Stu &p)
//    {
//        Stu temp;
//        temp.a= a - p.a;
//        temp.b= b - p.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;
}
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 > 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;
    }
}
 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;
    }
}
 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;
 }

c++day4_第1张图片

你可能感兴趣的:(c++,开发语言)