C++运算符重载限制
重载运算符至少有一个操作数是用户自定义类型
重载运算符不能违反原运算符的句法规则
重载运算符不能修改原运算符的优先级
不能创建新的运算符
下列运算符不能重载
运算符 | 逻辑操作 |
---|---|
sizeof | sizeof运算符 |
. | 成员运算符 |
.* | 成员指针运算符 |
:: | 作用域解析运算符 |
?: | 条件运算符 |
typeid | RTTI运算符 |
const_cast | 强制类型转换运算符 |
dynamic_cast | 强制类型转换运算符 |
reinterpret_cast | 强制类型转换运算符 |
static_cast | 强制类型转换运算符 |
只能通过成员函数进行重载的运算符:
项目 | 价格 |
---|---|
= | 赋值运算符 |
() | 函数调用运算符 |
[] | 下标运算符 |
-> | 通过指针访问类成员的运算符 |