Instanz welcher abgeleiteten Klasse?
Hallo!
Angenommen, ich habe eine abstrakte Klasse Fahrzeug; Davon leiten sich die Klassen Auto, Fahrrad und Motorrad ab. Im Quelltext arbeite ich dann mit der Variable einFahrzeug : TFahrzeug! Kann ich nun irgend wie testen bzw. abfragen, von welcher Sub-Klasse das Fahrzeug nun genau ist, also ob es ein Auto, Fahrrad, etc. ist? |
Re: Instanz welcher abgeleiteten Klasse?
|
Re: Instanz welcher abgeleiteten Klasse?
du könntest mit dem is/as operator arbeiten. aber das ist in deinem falle wohl nicht im sinne von OOP.
|
Re: Instanz welcher abgeleiteten Klasse?
Zitat:
|
Re: Instanz welcher abgeleiteten Klasse?
Erstmal bekommst du über Classname den Klassennamen als Text.
2. Kannst du den Operator is verwenden (also z.B. Fahrzeug is TAuto). Wobei das auch true ergibt wenn das Objekt widerrum von TAuto abgeleitet ist 3. Über ClassInfo bekommst du die genaue Klasse. Mit einer einfachen Abfrage Fahrzeug.ClassInfo=TAuto kannst du fragen, ob das Objekt wirklich TAuto ist. Ist es abgeleitet von TAuto ergibt der vergleich false (im Gegensatz zu is). |
Re: Instanz welcher abgeleiteten Klasse?
Zitat:
|
Re: Instanz welcher abgeleiteten Klasse?
Zitat:
Da meckert der Compiler! Er weis da nichts mit TAuto anzufangen. Und ClassInfo gibt mir ja nur einen Pointer... |
Re: Instanz welcher abgeleiteten Klasse?
Zitat:
Der Compiler bleibt still! Dennoch klappt der if-Vergleich nicht. |
Re: Instanz welcher abgeleiteten Klasse?
oh sorry. Hatte was verwechselt. Statt ClassInfo nimm ClassType. :duck:
|
Re: Instanz welcher abgeleiteten Klasse?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz