C++运算符重载限制

37 阅读1分钟
  1. 重载后的运算符必须至少有一个操作数是用户定义的类型;
  2. 使用运算符时不能违反运算符原来的句法规则;不能修改运算符的优先级;
  3. 不能创建新运算符;
  4. 不能重载特定运算符:
    • sizeof()
    • .
    • .*(成员指针运算符)
    • ::
    • ?:
    • typeid(一个RTTI运算符)
    • const_cast(强制类型转换运算符)
    • dynamic_cast
    • reinterprect_cast
    • reimterprect_cast
    • static_cast
  5. 大多数可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载;
    • =
    • ()(函数调用运算符)
    • [] (下标运算符)
    • -> (通过指针访问成员的运算符)