运算符重载总结

一、什么是运算符重载

  所谓的重载,就是重新赋予新的含义。在自定义的数据类型中,定义一种更简洁的方式工作,如对象a1 + a2,但编译器不知道怎么去执行,此时我们就可以重载+号,去告诉编译器如何执行。

二、实现运算符重载的步骤

  1)假想操作符是一个函数,写出函数名称opetator+(int b)

  2)根据操作数,写出函数参数

  3)根据业务,完成函数返回值(看函数是返回引用还是指针元素),以及实现函数业务

三、运算符重载的两种方法

  1)成员函数

  2)友元函数

四、各种运算符需要注意的地方

  1)=号运算符

    a.先释放旧的内存

    b.返回一个引用

    c.=操作符从右向左

  2)[]和()运算符

int& myArray::operator[](int i)//同时当左右值
{
    return m_space[i];
}

a[0] = 1;
a1 = a[0];

五、&&和||内置实现了短路规则,C++的函数参数都会被求值,无法实现短路规则

  短路规则,就是a1成立后,不执行后面的a1+a2

if( a1 && (a1 + a2) )
    {
        cout<<"有一个是假,则不在执行下一个表达式的计算"<<endl;
    }
原文地址:https://www.cnblogs.com/jly594761082/p/10584100.html