Arbeiten mir Zugriff auf andere Klasse



  • Hallo,
    ich habe eine grundsätzliche Frage zur Arbeit mit Klassen.

    Ich habe eine Klasse "Max" in der ich die Funktion "laufen()"
    ansprechen möchte. Nun soll dies aber in der neuen Klasse "Peter"
    passieren...und dort innerhalb eines Buttonaufrufes.

    in der Peter.cpp:

    #include "Max.h"
    .
    .
    .
    void Peter::OnBnClickedButton1()
    {
    max zugriff;
    zugriff.laufen();
    }
    

    Ist es nun in irgendeiner Weise bedenklich, dass ich die
    Variable "zugriff" nicht als membervariable global angelegt habe?
    Kann sowas grundsätzlich zu Speicherlecks führen? Insbesondere,
    wenn der Button mehrfach gedrückt wird?! Bzw. zerstört sich
    "max zugriff" nicht ohenhin selbst und wird neu initialisiert,
    wenn der Button aufruf fertig ist?



  • Die Variablen auf den Stack werden zerstört (Destruktor wird aufgerufen), wenn sie den Gültigkeitsbereich "verlassen".
    Bedeutet: Am Funktionsende wird der Destruktor von max aufgerufen. Sofern der korrekt aufräumt, gibts kein Speicherleck.



  • Dachte ich es mir doch... 🙂



  • Der Stack ist aber begrenzt. Solltest du also in deiner Klasse viel Speicher verwenden wirst du ein Problem haben wenn du alles am Stack anlegst.


Anmelden zum Antworten