|
![]() ![]() ![]() ![]() ![]() |
![]() | 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 |