Konvertierungen und RTTI
Statische und dynamische Konvertierungen
Wozu dynamische Konvertierungen?
- in Ableitungshierarchie unseres Beispieles ist
- GeoObj die abstrakte Basisklasse
- ZGeoObj der Container, der Pointer auf GeoObj'e aufnehmen kann
- die Objekte aller von GeoObj abgeleiteten Klassen (einschl.
ZGeoObj selbst) sind fähig, in einem ZGeoObj gespeichert zu
werden (IST-Relation)
- implizite statische Konvertierung eines Pointers auf ein Objekt einer
abgeleiteten Klasse (z.B. Rechteck) in einen Pointer auf ein Objekt der
Basisklasse (z.B. GeoObj)
-
- Gefahr der Übergeneralisierung
Conatiner akzeptiert jede Referenz auf ein Objekt, wenn es dem erwarteten
Mindesttyp (z.B. abstrakte Basis) entspricht
-
- Ausweg: ,,irgendeine`` Form des dynamischen Typmanagements,
z.B. RTTI und dynamische Downcasts