dynamischen Datentyp feststellen
-
Hallo!
Ich möchte während der Laufzeit feststellen, welchen Datentyp (=welche Klasse) eine Variable besitzt und das mit vorgegebenen Datentypen vergleichen.
Wie ist das möglich?
Gruß
-
Hallo,
die Frage "X welchen Datentyp hast du?" kann in C++ im Allgemeinen nicht beantwortet werden. Auf die Frage "X hast du den Datentyp Y?" liefert dir aber typeid eine Antwort.
D.h. sowas geht nicht:typeof(anObject) x = anObject;
sowas hingegen schon:
// #include <typeinfo> nicht vergessen if (typeid(anObject) == typeid(AClass)) { ... }
Die Notwendigkeit eine solche Frage stellen zu müssen deutet häufig aber auch auf einen Designfehler hin (z.B. fehlende virtuelle Funktionen). Du solltest dir also genau überlegen, warum du das brauchst und ob sich dein Problem nicht eleganter lösen lässt.
-
Danke für die Antwort.
HumeSikkins schrieb:
Die Notwendigkeit eine solche Frage stellen zu müssen deutet häufig aber auch auf einen Designfehler hin (z.B. fehlende virtuelle Funktionen). Du solltest dir also genau überlegen, warum du das brauchst und ob sich dein Problem nicht eleganter lösen lässt.
Das ist richtig - aber es ist momentan nur zur Überprüfung gedacht. Ich erweitere das Programm später um diese virtuelle Klasse (z.Z. brauche ich das nur "nebenbei").