运算符重载总结
一、什么是运算符重载
所谓的重载,就是重新赋予新的含义。在自定义的数据类型中,定义一种更简洁的方式工作,如对象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; }