単項演算の実装

提供: RAD Studio
移動先: 案内検索

クラスを作成してカスタム バリアント型を有効にする への移動


カスタム バリアント型が標準の単項演算子(-、not)を操作できるようにするには、UnaryOp メソッドをオーバーライドしなければなりません。 UnaryOp には、2 つのパラメータ --- オペランドの値、および、演算子 --- があります。 演算を実行するためにこのメソッドを実装し、オペランドを格納していた同じ変数を使用して、結果を返します。


たとえば、次の UnaryOp メソッドは、VarCmplx ユニットで定義される TComplexVariantType からきています。

Delphi:

 procedure TComplexVariantType.UnaryOp(var Right: TVarData; const Operator: TVarOp);
 begin
   if Right.VType = VarType then
     case Operator of
       opNegate:
         TComplexVarData(Right).VComplex.DoNegate;
     else
       RaiseInvalidOp;
     end
   else
     RaiseInvalidOp;
 end;

論理演算子 not の場合、複素数に対しては意味をなさないため、このメソッドは RaiseInvalidOp を呼び出して、ランタイム エラーを発生させます。

関連項目

二項演算の実装