next up previous contents index
Weiter: 2.4 Pointer Hinauf: 2 TypenKlassen Zurück: 2.2.3 Aggregate

2.3 Subtypen

  

Manchmal macht es Sinn, sich auf einen bestimmten Teilbereich eines Typs zu beziehen, ohne daß man einen gänzlich neuen Typ definieren will. Für solche Situationen bietet Ada das Konzept der Subtypen an. Ein Subtyp besteht aus einem Verweis auf seinen zugrundeliegenden Typ - den Basis-Typ  - und einer Bedingung. Ein Wert gehört zu einem bestimmten Subtyp, wenn er zum zugrundeliegenden Typ gehört und die Bedingung erfüllt. Eine solche Bedingung kann sein:

Beispiele dafür sind die folgenden Subtyp-Definitionen:

subtype Arbeitstag is Tag range Montag .. Freitag;
subtype kleiner_index is index range 5 .. 25;
subtype positiv_Volt is Volt range 0.0 .. +12;
subtype kleine_Matrix is Matrix(1..5, 1..5);
subtype erster_Arbeitstag is Arbeitstag(Montag);

Für die im Kapitel 2.1.1 angegebenen Typen positive und natural gilt, daß sich der Typ positive wie ein Subtyp von natural verhält und daß sich beide Typen wie Subtypen von integer verhalten.

Es soll noch einmal darauf hingewiesen werden, daß durch einen Subtyp kein neuer Typ definiert wird, sondern nur eine Bedingung auf den Basis-Typ erzwungen wird. Zuweisungen von Variablen eines Subtyps auf solche des Basis-Typs (und umgekehrt) sind möglich, solange die zugehörige Bedingung erfüllt ist.



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