C++ 操作符重载

操作符重载

定义:操作自定义类型的数据(例如两个点)

注意:1⃣️只能重载已经存在的运算符

           2⃣️操作数的数目必须和原始定义一致

           3⃣️至少有一个操作数为自定义类型

           4⃣️重载后优先级不变

operator:重载的符号是什么


// 重载 +   (友元、成员函数均可)

friend Point operator+(Point &p1,Point &p2){

    return Point(p1.x+p2.x,p1.y+p2.y);

}


// 重载 <<  (必须是友元函数)

friend  ostream& operator<<(ostream &out,const Point &p1){

    out<<p1.x<<","<<p1.y<<endl;

    return out;

}



// 重载  [] (必须是成员函数)

#include <iostream>

using namespace std;

class Text{

    int rep[10];

public:

    int getrep(int index){

        return rep[index];

    }

    int & operator[](int index){

        return rep[index];

    }

   const int & operator[](int index)const{

        return rep[index];

    }

    // 重载输出运算符,输出方便

    friend ostream & operator<<(ostream &out,Text t1){

        for (int i=0; i<10; i++) {

            out<<t1.rep[i]<<endl;

        }

        return out;

    }

};

int main(int argc, const char * argv[]) {

    Text t1;

    for (int i=0; i<10; i++) {

        cin>>t1[i];

    }

    cout<<t1;


    return 0;

}


重载++运算符

    Complex  operator++(){   //  ++在后

        Complex c1(*this);

        x++;

        return c1;

    }

    Complex  operator++(int){  //  ++在前

        return Complex(x++,y);

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值