二項演算子
次の表は、オーバーロードできる演算子の一覧です。
再定義可能な二項演算子
| 演算子 | 名前 |
|---|---|
| , | コンマ |
| != | 不等式 |
| % | 剰余 |
| %= | 剰余/代入 |
| & | ビット演算子 AND |
| && | 論理積 |
| &= | ビットごとの AND/代入 |
* |
乗算 |
*= |
乗算/代入 |
| + | 加算 |
| += | 加算/代入 |
| - | 減算 |
| -= | 減算/代入 |
| -> | メンバー選択 |
->* |
メンバーへのポインター選択 |
| / | 事業部 |
| /= | 除算/代入 |
| < | より小さい |
| << | 左シフト |
| <<= | 左シフト/代入 |
| <= | 以下 |
| = | 割り当て |
| == | 等式 |
| > | より大きい |
| >= | 以上 |
| >> | 右シフト |
| >>= | 右シフト/代入 |
| ^ | 排他的 OR |
| ^= | 排他的 OR/代入 |
| | | ビット演算子包含的 OR |
| |= | ビットごとの包括的 OR/代入 |
| || | 論理和 |
二項演算子関数を非静的メンバーとして宣言するには、次の形式で宣言する必要があります。
ret-type
operatorop(arg)
ret-type は戻り値の型、op は前の表に示されているいずれかの演算子、arg は任意の型の引数です。
二項演算子関数をグローバル関数として宣言するには、次の形式で宣言する必要があります。
ret-type
operatorop(arg1,arg2)
ret-type と op はメンバー演算子関数の場合と同様で、arg1 と arg2 は引数です。 少なくとも 1 つの引数がクラス型である必要があります。
Note
二項演算子の戻り値の型に制限はありません。ただし、ほとんどのユーザー定義の二項演算子は、クラス型かクラス型への参照を返します。