C++基础——运算符重载

运算符重载

所谓重载,就是对一个同样的东西赋予新的意义,函数重载就是让一个函数名有多种功能,在不同的情况下有不同的操作。运算符重载也是让同一个运算符可以有不同的功能。C++允许程序员自己重载运算符,给我们写程序带来了更大的便利。

运算符重载的声明和应用
局部运算符重载

以下代码定义了一个复数类,通过重载运算符+,实现复数的加法。

#include <iostream>
using namespace std;
class complex{
public:
    complex();
    complex(double real, double imag);
public:
    //声明运算符重载
    complex operator+(const complex &A) const;
    void display() const;
private:
    double m_real;  //实部
    double m_imag;  //虚部
};
complex::complex(): m_real(0.0), m_imag(0.0){ }
complex::complex(double real, double imag): m_real(real), m_imag(imag){ }
//实现运算符重载
complex complex::operator+(const complex &A) const{
    complex B;
    B.m_real = this->m_real + A.m_real;
    B.m_imag = this->m_imag + A.m_imag;
    return B;
}
void complex::display() const{
    cout<<m_real<<" + "<<m_imag<<"i"<<endl;
}
int main(){
    complex c1(4.3, 5.8);
    complex c2(2.4, 3.7);
    complex c3;
    c3 = c1 + c2;
    c3.display();
    return 0;
}
重载限制

多数C++运算符可以重载。重载的运算符不必是成员函数,但至少有一个操作数是用户自己定义的类型。

1、重载后的运算符至少有一个操作数是自己定义的,防止用户对标准的重载运算符进行修改。例如对两个int类型的+操作进行修改。
2、不能违反运算符原来的句法规则,例如:不能把%改成一个操作数,且不能修改运算符的优先级。
3、不能创建新的运算符。
4、不能对下面的运算符进行重载:
5、大多数运算符都可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值