Gültigkeitsbereich eines Stack-Objektes



  • Hallo,

    ich hab mal eine Frage bezüglich der Gültigkeit von Stack-Objekten.

    Hier ein Beispiel:

    void myfunc(){
        {
        Object o = Object(); // benötigt viel Speicher
        // weitere Anweisungen
        }
        // Hier kommt ein Bereich, in dem das Programm lange arbeitet
    }
    

    Kann ich mich darauf verlassen, dass das Objekt nach so einem (sonst scheinbar
    sinnlosen) Block sofort zerstört wird oder mach der C++ - Standard darüber keine
    Aussage, wann genau das Objekt zerstört wird.

    Ansonsten kann ich den Bereich natürlich in ne Methode auslagern, aber ist halt so ne Frage, die mich gerade beschäftigt 🙂

    Gruß,
    CBlock



  • Soweit ich weiss lebt jede Stack-Variable nur in dem Block in dem sie konstruiert wurde. Also ja, sie sollte zerstört werden am Blockende.



  • Stackobjekte leben in einem Scope. Und der Scope ist ist immer von { bis }.


Anmelden zum Antworten