Dynamischs binden
Objekte sind dynamisch, d.h. sie werden erst bei laufendem Programm erzeugt (constructor), bzw. gelöscht (destructor). Dies ist in etwa mit dem Speicherallocieren in C "malloc", welches letztes Jahr im Untericht durchgenommen wurde vergleichbar. Dies bringt den erheblichen Vorteil, daß beim Compilieren noch nicht genau feststehen muß an welche Stelle (im Assembler-code) gesprungen werden muß. An unklaren Stellen wird ein Platzhalter eingesetz, der während der Laufzeit durch das Run-time Modul richtig interpretiert wird.
Anders gesagt bedeuted "D.B.": es muß bei Compilierung noch nicht feststehen, welches UP ausgeführt wird
Z.B. bei Benutzerabhängigen Eingabe. Zeigt Pointer auf O1 oder O2
z.B. printf cout
Polymorhie (Polymorphe arrays)
Bei einem normalen Feld können nur Daten gleichen Typs gespeichert werden (int). Da jedoch bei Objekten Pointer verwendet werden können verschiedenste Objekte (bzw. Pointer auf diese) in einem Array gespeichert werden.
Auf den ersten Blick sieht es so aus als würden verschiedenste Objekte in einem Feld gespeichert werden können (z.B. verschiedene Eisenbahnen, Züge und Wagen) in Wirklichkeit wird jedoch jeweils nur ein Pointer auf ein Objekt gespeichert und dadurch wird die polymorphie (vielschichtigkeit, vielgesichtigkeit) ermöglicht.
Garbage Collection
D.H. Alle Objekte auf die kein Pointer zeigt werden aus dem Speicher gelöscht.
|