Die bessere Lösung für das Problem wäre wohl die Nutzung der Polymorphie:
- packe eine (abstrakte) virtuelle Methode in TAuto
- überschreibe die in den Subklassen
- und rufe die einfach mit nem cast auf TAuto (nicht auf die Subklassen) auf
==> keine Casts auf Subklassen nötig und vor allem keine explizite Typabfrage mit is...
Siehe auch:
If Statement Considered Harmful
Und mal unabhängig vom konkreten Symptom sind das schon falsche Klassen. Neue Klassen sollte man nur erstellen, wenn diese neuen Klassen auch etwas neues können. Aber kann ein TCoupe mehr als ein TAuto? Oder ist das eigentlich nicht doch eher ein Attribut?
mfg
Christian