运算符的重载operator

运算符的重载operator


重写:针对子类父类而言,函数名参数一样,但函数内容不一样;
重载:针对函数而言,同名同内容,只是参数的类型和数量不同;

operator重载

基本格式:

返回值类型 operator 运算符号(参数列表){
	// TODO
}

下面举例实现了一个复数类(3i+5)

class Complex {
public:
    Complex(): real(0.0), imag(0.0) {}
    Complex(int a, int b): real(a), imag(b) {}
    // 这里开始运算符的重载
    Complex operator+(const Complex &A) const {
        Complex B;
        B.real = A.real + real;
        B.imag = A.imag + imag;
        return B;
    }
    void diplay() {
        cout << real << "i+" << imag << endl;
    }
private:
    double real; // 实部
    double imag; // 虚部
};

下面是operator的调用方式:

int main(){
    Complex a(1.0,3.0);
    Complex b(2.0,5.0);
    Complex c;
    c = a + b; // 写法一
    c = a.operator+(b); // 写法二
    c.diplay();
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值