操作符重载一些注意事项
不能重载操作符
- "."(类成员访问运算符)
- " .*"(类成员指针访问运算符)
- "::"(域运算符)
- "siezof"(长度运算符)
- " ?:"(条件运算符)
只在类的成员函数中重载的操作符
- =(等号)
- [](下标访问)
- ()(括号)
- ->(指针访问)
只在友元函数中重载的操作符
- << 和 >>(输出输入流)
原因:如果是重载双目操作符(即为类的成员函数,就只要设置一个参数作为右侧运算量,而左侧运算量就是对象本身而 >> 或<< 左侧运算量是 cin或cout 而不是对象本身,所以不满足后面一点就只能申明为友元函数了。
补充
前置++运算符为 类型+operator++()
后置++运算符为 类型+operator++(类型)