next up previous contents index
Weiter: 5.7 Abstrakte Unterprogramme Hinauf: 5.6 Das Parametertyp-Profil Zurück: Überladen von Unterprogrammen

Überladen von Operatoren

  

Ada erlaubt auch, daß Funktionen deklariert werden, deren Bezeichner mit einem Operator übereinstimmt, z.B.:

function "+" (left, right: Vektor)
return Vektor;

Dabei muß der Bezeichner des Operators zwischen doppelten Hochkommata eingeschlossen werden. Als Operator-Bezeichner kommen alle Operatoren in Frage, die wir im Kapitel 3 kennengelernt haben.

Unter der Annahme, daß A, B und C Variablen vom selben (constrained) Typ Vektor sind, sind die folgenden Verwendungen gleichbedeutend:

A := "+"(left => B, right => C);
A := "+"(B, C);
A := B + C;

Der Gleichheitsoperator = kann für limitierte Typen explizit deklariert werden, sofern die beiden Parameter vom selben limitierten Typ sind und der Rückgabewert den Typ boolean hat. Dadurch wird implizit auch der Operator /= neu definiert, nämlich als not =. Explizites Überladen von /= ist verboten.



Johann Blieberger
Wed Feb 11 09:58:52 MET 1998