|
4.4.3 Untertypen
Von sämtlichen Typen können in Ada Untertypen (subtype) vereinbart
werden. Im Gegensatz zu abgeleiteten Typen entsteht bei der Bildung von
Untertypen kein neuer Typ. Es wird lediglich eine Verschärfung der
Bereichseingrenzung vorgenommen
(subtype_declaration
<BNF>).
type Monats_Typ is (Jan, Feb, Mär, Apr, Mai,
Jun, Jul, Aug, Sep, Okt, Nov, Dez);
subtype Sommermonats_Typ is Monats_Typ range Jun..Sep;
subtype Winkel is Float range 0.0 .. 2.0 * Pi; -- Untertyp
von Float
subtype String8 is String(1 .. 8); -- Untertyp von String |
Auch von Untertypen können weitere Untertypen gebildet werden.
subtype Natural is Integer range 0 .. Integer'last;
-- Integer und Natural sind bereits in Standard definiert
subtype Dutzend is Natural range 0 .. 12; -- Dutzend ist ein Untertyp
vom Untertyp Natural
|
Operationen können auf Typen und Untertypen in gleicher Weise angewendet
werden. Man kann z. B. Objekte vom Typ "Natural" und "Dutzend"
addieren, vergleichen und zuweisen, sofern keine Bereichsbeschränkungen verletzt
werden.
|