这一块内容很多,我记录一下主要的格式和大致用法。
1.对于全局函数(友元)
单目:以负号(-)为例 (类为A) 这里,[ ]里面的是需要具体情况而判断是否加上
[const] A [&] operator- ( [const] A & c1)
双目:以加法(+)为例
[const] A [&] operator+ ([const] A & c1 , const A & c2)
2.对于成员函数
单目:
[const] A [&] operator- ()
双目:
[const] A [&] operator+ ([const] A & another)
PS:
1.三目运算符 ?: 不可重载。
2.第一个 const 是否加上主要看 函数返回的值 是否能被重新赋值
3..对于负号,实际上只能用 const operator-() const 来表示,第一个const修饰返回值,第二个修饰函数。由于需要满足 -(-n) 的成立 和 -n=90的错误,所以需要两个const.
对于 -(-n)中,里面的 -n 返回一个const ,const只能调用 const 函数,所以只能两个 const.(关于const用法见我另一篇文章)
4.对于加上第一引用符号,是因为返回值对之前的操作又有改变,所以需要加引用。尤其对于局部变量,绝对不能加引用。
原则:
对于返回对象和返回引用,原则就是能返回引用就返回引用
对于 const 和 非const ,原则就是能 const 就返回 const