1、= ( ) [ ] ->运算符必须是成员函数,是因为是左值操作符;
2、二元运算符建议用友元函数的原因是碰到内置类型数值放前,与对象相加减时,成员函数不支持,如:A a;1+a,得把1转换成A,再调用operator+,如果是成员函数就会有错误,无法调用;
运算符 |
建议使用 |
所有一元运算符,如++,-- |
成员函数 |
= ( ) [ ] -> |
必须是成员函数,因为可作为左值 |
+= -= /= *= ^= &= != %= >>= <<= , 似乎带等号的都在这里了. |
成员函数 |
所有其它二元运算符, 例如: –,+,*,/ |
友元函数, |
<< >> |
必须是友元函数 |
参考链接:http://blog.csdn.net/insistgogo/article/details/6626952
原文:http://www.cnblogs.com/zjqianzi/p/5831075.html