The comparision operators that can be overloaded are:
There is no separate operator for unequal to (<>). To evaluate a statement that contans the unequal to operator, the compiler uses the equal to operator (=), and negates the result.
As an example, the following opetrator allows to compare two complex numbers:
operator = (z1, z2 : complex) b : boolean;
|
the above de nition allows comparisions of the following form:
Var
C1,C2 : Complex; begin If C1=C2 then Writeln('C1 and C2 are equal'); end; |
The comparision operator de nition needs 2 parameters, with the types that the operator is meant to compare. Here also, the compiler doesn't apply commutativity; if the two types are di erent, then it necessary to de ne 2 comparision operators.
In the case of complex numbers, it is, for instance necessary to de ne 2 comparsions: one with the complex type rst, and one with the real type rst.
Given the de nitions
operator = (z1 : complex;r : real) b : boolean;
operator = (r : real; z1 : complex) b : boolean; |
the following two comparisions are possible:
Var
R,S : Real; C : Complex; begin If (C=R) or (S=C) then Writeln ('Ok'); end; |
Note that the order of the real and complex type in the two comparisions is reversed.