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ß,
    CSpille

    PS: 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.


Anmelden zum Antworten