可以重载的运算符:
不能重载的运算符:
重载的限制:
总结:1.不能凭空重载新的;2.操作的参数不能变
重载规则:当成函数去写
重载的两种方式:
做在类里面或者外面
第二个参数可以被隐式转换,可以根据第一个来,但是第一个不行,读到什么就是什么
对于一些逻辑上相关的运算符重载,我们最好只重载一个,然后剩下的重用这个,方便修改(必须重载相等运算符,然后不等于运算符再重用这个)
Operator []
一般最好写两个,普通和const
两个版本,这样如果是const
容器也可以使用下标访问
对于指针,如果需要深拷贝,那么就得自己写一个等号操作
Operator ()
隐式转换:
如果希望禁止隐式转换(有时候,一些自动饮食转换可能会带来bug):explicit