typeid
-
Hallo zusammen!
Ich würde gern zur Laufzeit den Namen eines Bestimmten Objekte, auf das über einen Zeiger einer Basisklasse verwiesen wird, zu Diagnosezwecken in Erfahrung bringen.
Wende ich typeid auf einen polymorphen Typ an, so bekomme ich diese Fehlermeldung:warning C4541: 'typeid' fuer polymorphen Typ 'class A' mit /GR- verwendet; unvorhersehbares Verhalten moeglich
Eine Programmausführung wird auch mit einem Absturz quittiert, woraus ich schließe, dass der Operator wohl nicht für Polymprhe Typen bestimmt ist.
Auf einen Nicht-Polymorphen Typ angewandt wird mir jedoch immer der Typ des Zeigers und nicht der des Objekt geliefert auf das dieser verweist, obwohl der typeid Operator dafür ja eigentlich vorgesehen ist. Außerdem kann ich mir nicht vorstellen, wie typeinfo ohne Typinformationen, die bei Nicht-Polymorphen Typen ja fehlen, mir den typ des referenzierten Objekt verraten könnte.
Kann mir jemand sagen was ich falsch mache?
-
Vermutlich hast Du RTTI (Runtime type information) ausgeschaltet. Dann funktioniert das natürlich nicht. Du mußt also nachschaun, wie man das bei Deinem Compiler einschaltet.
-
Gib doch einfach mal C4541 in die Index-Suche der MSDN ein. Zu jedem Errorcode des MSVC gibts eine ausführliche Hilfe.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.