Weiter: 8.1 Ein einleitendes
Hinauf: Ada - Ein Überblick
Zurück: 7.5 Benutzerdefinierte Initialisierung
Generische Einheiten
in Ada sind in etwa vergleichbar den in manchen Assemblersprachen
üblichen Makros. Eine generische Einheit ist eigentlich eine Art
Schablone, die durch den Vorgang der
Instantiierung
funktionsfähig wird. In Ada wird zwischen
generischen Unterprogrammen
und
generischen Paketen
unterschieden. Wichtig ist, daß für solche Einheiten
generische Parameter
definiert werden können. Bevor wir fortfahren, ein Beispiel:
generic
Das ist die Deklaration einer
generischen Prozedur ,
die die Werte der Parameter vertauschen soll. Da der Typ der
Parameter uninteressant ist, wird er als generischer Parameter
in Form eines privaten Typs vereinbart. Damit wird bewirkt, daß
keinerlei Anforderungen an Operationen dieses Typs gestellt werden,
außer daß es möglich sein muß, Werte zweier Variablen dieses Typs
einander zuzuweisen und sie eventuell auf Gleich- und Ungleichheit zu testen.
Eine entsprechende Implementierung könnte etwa lauten:
procedure Vertausche(a,b: in out Element)
is
h: Element;
begin
h := a;
a := b;
b := h;
end Vertausche;
Die Implementierung erfolgt also wieder gänzlich unabhängig vom
Typ der zu vertauschenden Werte in dem Sinne, daß nur der generische
Parameter verwendet wird.
Beispiele für Instantiierungen lauten etwa:
procedure Vertausche_integer is new Vertausche(Element => integer);
procedure Vertausche_Datum is new Vertausche(Element => Datum);
Johann Blieberger
Wed Feb 11 09:58:52 MET 1998