下表顯示可以多載的運算子清單。
可重新定義的二元運算子
| 運算子 | 名稱 |
|---|---|
| / | Comma |
| ?? | 不等於 |
| % | 模數 |
| %= | 模數/指派 |
| / | 位元 AND |
| ?? | 邏輯 AND |
| ?? | 位元 AND/指派 |
* |
乘法 |
*= |
乘法/指派 |
| + | 加法 |
| += | 加法/指派 |
| - | 減法 |
| -= | 減法/指派 |
| -> | 成員選取 |
->* |
成員指標選取 |
| / | 除法 |
| /= | 除法/指派 |
| < | 小於 |
| << | 向左移位 |
| <</ | 左移/指派 |
| </ | 小於或等於 |
| = | 指派 |
| == | 等式 |
| > | 大於 |
| >/ | 大於或等於 |
| >> | 向右移位 |
| >>/ | 右移/指派 |
| ^ | 互斥 OR |
| ^= | 互斥 OR/指派 |
| | | 位元包含 OR |
| |= | 位元包含 OR/指派 |
| || | 邏輯 OR |
若要將二元運算子函式宣告為非靜態成員,您必須以此格式進行宣告:
ret-type
operatorop(arg)
其中 ret-type 為傳回型別,op 是上表中所列的其中一個運算子,而 arg 是任何類型的引數。
若要將二元運算子函式宣告為全域函式,您必須以此格式進行宣告:
ret-type
operatorop(arg1,arg2)
其中 ret-type 和 op 如成員運算子函數所述,而 arg1 和 arg2 是引數。 至少要有一個引數是類別類型。
注意
二元運算子的傳回型別不受限制;不過,大部分使用者定義的二元運算子會傳回類別類型或類別類型的參考。