二項演算子
次の表は、オーバーロードできる演算子の一覧です。
再定義可能な二項演算子
演算子 |
名前 |
---|---|
, |
コンマ |
!= |
非等値 |
% |
剰余 |
%= |
剰余/代入 |
& |
ビットごとの 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 は引数です。 少なくとも 1 つの引数がクラス型である必要があります。
注意
二項演算子の戻り値の型に制限はありません。ただし、ほとんどのユーザー定義の二項演算子は、クラス型かクラス型への参照を返します。