operator-id + . 01 iMins binary-long. 01 iHour binary-long. procedure division ... end operator.
演算子のオーバーロードのサンプルも参照してください。このサンプルは、[スタート > すべてのプログラム > Micro Focus Enterprise Developer > Samples] の COBOL for JVM の下にあります。
変換演算子はオーバーロードできるため、適切な変換演算子が呼び出しコードのパラメーター タイプに従って使用されます。署名 (手続き部の USING 句) が一致する演算子が実行されます。例えば、タイプ Timer のデータ項目を binary-long に変換する必要がある場合、使用される演算子は、入力パラメーターのタイプが Timer で 出力パラメーターのタイプが binary-long の演算子になります。
変換演算子を定義して使用するには、次のようにします。
演算子をオーバーロードして、代替動作やさまざまなオペランド タイプに対する動作を提供できます。例えば、Timer タイプを時間と分で表現する場合、2 つの Timer を追加する 1 つの + (プラス) 演算子と、分を Timer タイプに追加するもう 1 つの + (プラス) 演算子を定義できます。
オーバーロードする演算子を宣言するには、次のようにします。
オーバーロードできる演算子 | operator-id 署名のオーバーロード | 注 |
---|---|---|
次のような条件付き演算子:
t1 = t2, t1 equals t2 |
値 t1 t2 は条件 - 値を戻す |
条件付き演算子はペアで指定する必要があります。等号演算子 (=) を宣言する場合、不等号演算子 (<>) も宣言する必要があります。 |
次のようなバイナリ演算子:
t1 + t2 |
値 t1 t2 は t3 を戻す |
バイナリ演算子には 2 つの引数が必要です。バイナリ演算子の場合、演算子のペアを指定して、2 つのオペランドがいずれかの順序で渡されるようにする必要があります。 |
次のような単項演算子:
-t1 |
値 t1 は t3 を戻す |
単項オーバーロード演算子で使用できる引数は 1 つのみです。 |
次のような論理演算子:
t1 b-or |
値 t1 t2 は t3 を戻す |
|
次のようなシフト演算子:
t1 b-right |
値 t1 t2 は t3 を戻す |
加減乗除の算術演算子はすべてオーバーロードできますが、それらに相当する動詞はオーバーロードできません。例えば、次の文の ADD はオーバーロードできません。
add a to b giving c
オーバーロードする演算子を使用するには、オーバーロードされた演算子が範囲内にある必要があります。