二項演算子
次の表はオーバーロードできる演算子の一覧を示します。
二項演算子 Redefinable
[演算子] |
名前 |
---|---|
, |
コンマ |
!= |
非等値 |
% |
剰余 |
%= |
剰余と割り当て |
& |
ビットごとの AND |
&& |
論理 AND |
&= |
ビットごとの AND/assignment |
* |
乗算 |
*= |
乗算と割り当て |
+ |
加算 |
+= |
加算と割り当て |
– |
減算 |
–= |
減算と割り当て |
– > |
メンバー選択 |
– >* |
メンバーへのポインターの選択 |
/ |
除算 |
/= |
除算と割り当て |
< |
より小さい |
<< |
左シフト |
<<= |
左シフトと割り当て |
<= |
以下 |
= |
代入 |
== |
等価比較 |
> |
より大きい |
>= |
以上 |
>> |
右シフト |
>>= |
右シフトと割り当て |
^ |
排他的 OR |
^= |
[OR/assignment |
| |
ビットごとの包括的 OR |
|= |
ビットごとの包括的 OR/assignment |
|| |
論理 OR |
非静的メンバーとして二項演算子関数を宣言するにはフォーム内で宣言する必要があります :
浸水型 演算子 op**(**arg )
浸水型と 戻り値の型であればop は上の表に示す演算子の 1 つです arg は任意の型の引数です。
グローバル関数として二項演算子関数を宣言するにはフォーム内で宣言する必要があります :
浸水型 演算子 op**(**arg1arg2 )
浸水型 と op と arg1 と arg2 メンバー演算子関数で説明されているように対し引数です。引数の少なくとも 1 つがクラス型である必要があります。
[!メモ]
二項演算子の戻り値の型に関する制限はありません ; ただしほとんどのユーザー定義の二項演算子はクラス型にクラス型または参照を返します。