|
Wenn ein Zeiger oder Variablenparameter gegeben ist,
dann sind zwei Typen damit assoziiert:
der statisch bekannte Typ und der
dynamische Typ (d.h. der zur Laufzeit bestimmte Typ).
| |
Dabei gilt, daß der dynamische Typ eine Erweiterung
des statischen Typs sein muß.
| |
Oberon bietet den IS-Operator an, der es erlaubt,
den dynamischen Typ zu überprüfen:
|
PROCEDURE Draw(VAR go: GraphicalObject); BEGIN IF go IS Circle THEN (* draw a circle *) ELSIF go IS Rectangle THEN (* draw a rectangle *) ELSE (* unknown *) END; END Draw; |
variable IS Type liefert dabei genau dann TRUE, falls der dynamische Typ von variable eine Erweiterung von Type ist. | |
Der Compiler läßt Typen-Tests nicht zu, wenn Type
keine Erweiterung des statischen Typs von variable ist.
|
Copyright © 1999, 2004 Andreas F. Borchert, in HTML konvertiert am 28.01.2005 |