Name einer Instanz ermitteln
-
Hallo,
ich hab da mal ne Frage:Kann man den Namen einer Instanz ermitteln, so dass
Kuchen *erdbeerkuchen = new Kuchen;mir "erdbeerkuchen" zurückgegeben wird?
Gibt es da eine Funktion dafür?
EDIT: Ich habe mir schon typeinfo.h angeschaut, aber da bekommt man nur den Namen der Klasse zurückgeliefert.
-
Nein, denn diese Namen gibt es nach dem kompilieren nicht mehr.
-
Das ist ja interessant.
Schade dass das nicht geht.
-
Quellcode schrieb:
Das ist ja interessant.
Schade dass das nicht geht.Grundsätzlich sind Variablennamen nicht mehr während der Laufzeit existent. Was man aber machen kann, ist eine map zu verwenden in dem ein irgendwie gearteter Bezeichner (z.B. als String) als Schlüssel verwendet wird.
-
@Quellcode:
denk mal nach, das kann so direkt garnicht gehen, schon garnicht mit Zeigern:void bar(kuchen* k) { std::cout << magic_get_name(k); // "name" ausgeben } void foo() { bar(new kuchen()); // was soll bar ausgeben? kuchen* k1 = new kuchen(); kuchen* k2 = k1; bar(k2); // und was soll bar hier ausgeben? kuchen kx; bar(&kx); // ...? kuchen ky[100]; bar(&ky[5]); // ...? // ... }
-
Das ist mir auch nicht bewusst, dass das irgendeine Programmiersprache kann.
Man kann zwar in Java den Namen der Klasse heraus finden, aber imo nicht den Namen der Variablen. Ist ja auch unsinn, weil ich kann ja die Instanz über 25 und mehr Variablen referenzieren.
-
Ich bin mir grade nicht sicher, aber konnte Pascal das nicht?