运算符重载笔记
what:
运算符重载是为了实现自己创建的类能够进行运算,输出,输入,来满足和简化自身的需求。
how:
格式为: 返回值类型 operator运算符(参数)
{
函数体
}
注意事项:
(1)不能修改原先的运算符优先级
(2)不能创建新的运算符
(3)不能将+改为*之类云云
(4)引用:不能重载的运算符(成员运算符,作用域运算符,条件运算符,sizeof运算符,typeid运算符,强制类型转换运算符)
(5)可以在 函数体内不出现要重载的运算符
两种形式:
即类的成员函数和类的非成员函数
(1)非成员函数的参数值比成员函数的参数值少一个
(2)成员函数的调用需使类内数据处于左边,而非成员函数的参数则可任意。因此提取和输入运算符(<<和>>)不得不使用非成员函数来重载
(3)为了方便非成员函数的创建,我们最好使用friend友元
————————————————————————————————————————————
关于链式编程
当我们想使用a=b=c,或者cout<<a<<b;时,我们就需要返回引用了。
最后
我们什么时候返回自身引用,什么时候返回参数呢
一般情况下需要使类内的成员数据改变,则需要返回本身,即*this
如果不想使成员数据改变,则可以初始化一个temp值,然后返回这个值的引用