Abfrage Klassenname: wie umwandeln in char[] ?
-
Hallo,
wie kann ich den Namen einer Klasse abfragen?
Folgende Versuche habe ich schon unternommen:char vegTypeName0[] = (char[])typeid(*veget[0]).name(); char vegTypeName1[] = (char[])typeid(*veget[1]).name();So bekomme ich die Fehlermeldung
"E2031 Typumwandlung von 'const char *' nach 'char[]' nicht zulässig"Wenn ich es als
const char *vegTypeName0 = typeid(*veget[0]).name(); const char *vegTypeName1 = typeid(*veget[1]).name();aufschreibe, hab ich nur den ersten Buchstaben vom Klassennamen drin (wie käme ich bei einer nachfolgenden Namensüberprüfung an die restlichen Buchstaben?)
Danke schonmal!
-
susie schrieb:
...
wie kann ich den Namen einer Klasse abfragen?
Folgende Versuche habe ich schon unternommen:1. Auf portablen Weg ohne die Klasse um eine entsprechende Methode zu erweitern garnicht. Was typeid.name zurückliefert ist nicht einheitlich geregelt.
2. Was das Problem mit dem kopieren eines char* in ein char[] angeht solltest du dich mal mit den absoluten C Grundlagen auseinander setzen oder besser auf die C++ Form mit std::string zugreifen (ungetestet):
std::string name = typeid(*veget[0]).name();cu André
-
Wow, das war aber schnell!
1. ist erstmal egal. Ist ärgerlich, daß das nicht so ohne weiteres geht, aber wie ich das dann ggf. anpasse, muß ich später sehen (Hauptsache, es LÄSST sich anpassen)
Zu 2.: Mit std::string lagst Du richtig! Danke!
-
susie schrieb:
...
Zu 2.: Mit std::string lagst Du richtig! Danke!
Kleriner Nachtrag von mir: std::string sollte IMHO immer die erste Wahl (ggü. char[]/char*) sein, wenn man mit Zeichenketten (sic) umgehen will.
In Java käme man ja auch nicht zuerst auf die Idee, die mittels char[] zu bearbeiten ....
Nichtsdestotrotz gibt's natürlich auch Sonderfälle, in denen char[]/char* besser geeignet oder gar zwingend sind, aber das sollten eben die Sonderfälle sein.
Gruß,
Simon2.
-
Hi Simon2,
danke, ja. Ich denke immer, bei C++ ist alles viel mehr low-level.
Bin halt leider noch auf der Suche nach einem für mich geeigneten Buch... (bislang behelfe ich mir damit, in 3 verschiedenen Büchern die Sachen nachzuschlagen, die für mich interessant sind, was nicht grade das ideale ist)
-
susie schrieb:
Bin halt leider noch auf der Suche nach einem für mich geeigneten Buch... (bislang behelfe ich mir damit, in 3 verschiedenen Büchern die Sachen nachzuschlagen, die für mich interessant sind, was nicht grade das ideale ist)
The C++ Programming Language (Bjarne Stroustrup) ist eine sehr gute Referenz und auch (wenn man schon ein wenig C++ programmiert hat) gut zum lernen/durchlesen geeignet.
Ansonsten mal ins FAQ schauen. Hat bestimmt irgendwo eine Bücherliste.