C++中允许在同一作用域中的某个运算符指定多个定义。
通过重定义(重载)C++内置的运算符,使用自定义类型的运算符。
重载的运算符由关键字 operator 要重载的运算符符号构成的。重载运算符需要一个返回类型和一个参数列表。
//两个Box相加
Box operator+(const Box&);
Box operator+(const Box&,const Box&);
可重载运算符列表:
运算符 | 符号 |
---|---|
双目算术运算符 | + (加),-(减), (乘),/(除),% (取模) |
关系运算符 | ==(等于),!= (不等于),< (小于),> (大于),<=(小于等于),>=(大于等于) |
逻辑运算符 | (逻辑或),&&(逻辑与),!(逻辑非) |
单目运算符 | + (正),-(负),*(指针),&(取地址) |
自增自减运算符 | ++(自增),–(自减) |
位运算符 | (按位或),& (按位与),~(按位取反),^(按位异或),,<< (左移),>>(右移) |
赋值运算符 | =, +=, -=, *=, /= , % = , &=, |
空间申请与释放 | new, delete, new[ ] , delete[] |
其他运算符 | ()(函数调用),->(成员访问),,(逗号),[](下标) |
不可重载运算符列表
运算符 | 符号 |
---|---|
成员访问运算符 | .点 |
成员指针访问运算符 | .* 和 ->* |
域运算符 | :: |
长度运算符 | sizeof |
条件运算符 | ?: |
预处理符号 | # |