Laufzeitfehler bei VAR-Parametern

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

PROCEDURE Copy(VAR source, dest: GraphicalObject);
BEGIN
   dest := source;
END Copy;

(* ... *)

Copy(circle, rectangle);

*Jedes der beiden Teile in diesem Beispiel ist -- für sich genommen -- vollkommen korrekt und wird vom Compiler entsprechend auch akzeptiert.
 
*Wenn zur Laufzeit jedoch eine Zuweisung eines Kreises an einen Rechteck probiert wird, führt dies zu einem Laufzeitfehler.
 
*Bei VAR-Parametern wird also nicht nur der angegebene Typ des Parameters zur Übersetzzeit betrachtet, sondern auch der tatsächliche Typ zur Laufzeit einer Typ-Überprüfung bei einer Zuweisung oder Parameterübergabe unterworfen.
 
*Dies gilt sowohl bei Record- als auch bei Zeiger-Typen.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999