首页 > 代码库 > c++运算符重载的一些记录

c++运算符重载的一些记录


1. 哪些不可以被重载?

  . .*

2. 成员函数与非成员函数的运算符重载函数区别?
   运算符左侧是否是类对象本身.

3. a++, ++a 运算
   X operator ++ (const X& x);
   const X& operator ++ (const X& x, int);
   int 参数作为哑元存在标识是后自加, 因为X++不能作为左值所以返回值为const X&

4.尽量少使用隐式转换
  包括构造函数的转换 加入explicit
  重载运算符 operator ()

5.<C++ Strategies & Tactics> 描述
  所有的一元操作符                建议使用成员
  = () [] -> ->*                  必须使用成员
  += -= *= /= ^= &= |= %= >>= <<=  建议使用成员
  所有其他二元运算符               建议使用非成员

c++运算符重载的一些记录