|
PROCEDURE InitCircle(VAR circle: Circle; x, y, radius: INTEGER); BEGIN circle.x := x; circle.y := y; circle.radius := radius; END InitCircle; |
Wenn ein Record eine Erweiterung eines anderen Records ist,
stehen alle Komponenten zur Verfügung.
| |
Der wesentliche Vorteil der Typ-Erweiterungen besteht
in der damit verbundenen großzügigen Kompatibilität.
So kann ein erweiterter Record (wie Circle) einem
Record des zugehörigen Basistyps (wie z.B. GraphicalObject)
zugewiesen werden. Dabei findet eine Projektion statt, d.h.
die erweiternden Komponenten werden nicht kopiert.
|
VAR go: GraphicalObject; circle: Circle; rect: Rectangle; (* ... *) go := circle; (* OK *) circle := go; (* not permitted *) circle := rect; (* not permitted *) |
Copyright © 1999, 2004 Andreas F. Borchert, in HTML konvertiert am 28.01.2005 |