Speicherverwaltung
-
Hallo zusammen...
Da ich bisher nur Java kann und C++ erst lerne, möchte ich einen
Überblick bekommen, welche Objekte im Speicher sind.Hierzu möchte ich alle Objekte von einer Klasse Debug ableiten...
also etwa so:class ClassA: public virtual Debug{ }
Das virtual bei potentieller Mehrfachvererbung.
Im Konstruktor möchte ich mir dann das erstellen und verwerfen von
Objekten protokolieren...Ich dachte da an etwas wie:
Debug(){ Logger::log(typeid(*this).name()); // wobei Logger eine meiner Klassen ist }
Doch leider krieg ich dann immer ein "Debug" ausgegeben und nicht den Klassen-
namen der ClassA...Komm ich auch irgendwie an den Klassennamen?
Gruß,
CSpillePS: Dass ich den Klassennamen als Parameter für den Aufruf des Konstruktors
als "const char[] name" übergeben kann, weiß ich, aber geht das auch anders?
-
CSpille schrieb:
Da ich bisher nur Java kann und C++ erst lerne, möchte ich einen
Überblick bekommen, welche Objekte im Speicher sind.Versteh zwar nicht ganz, wofür das gut sein soll. Aber was solls...
CSpille schrieb:
Ich dachte da an etwas wie:
Debug(){ Logger::log(typeid(*this).name()); // wobei Logger eine meiner Klassen ist }
Doch leider krieg ich dann immer ein "Debug" ausgegeben und nicht den Klassen-
namen der ClassA...Was erwartest du denn? Welchen Typ wird wohl this im Debug ctor haben?
CSpille schrieb:
Komm ich auch irgendwie an den Klassennamen?
Nun, du könntest evtl. mit Templates was machen. Entweder als Parameter der Debug Klasse selbst oder im ctor.