wann klassen isntanzen löschen
-
hallo, ich muss mich doch nur um ein delete kümmern, wenn ich irgendwo eine instanz via new .... starte, richtig?
wenn ich ganz normal in einer funktion/methode eine instanz initialisiere
myclass h = myclass(...)dann wird es doch selbstständig aufgeräumt, sobald ich den fokus verlasse richtig?
-
Wenn du mit "Fokus" "Scope" oder "Gültigkeitsbreich" meinst, ja. Explizit freigeben musst du nur explizit angeforderten Speicher. (new/malloc, delete/free). Allerdings solltest du das (in letzter Instanz) immer hübsch den Destruktoren überlassen, das allseits beliebte Sichwort lautet hier RAII.
-
jakuoiz schrieb:
hallo, ich muss mich doch nur um ein delete kümmern, wenn ich irgendwo eine instanz via new .... starte, richtig?
"nur" ist gut... das kann extrem kompliziert werden. Deshalb sollte man "new" idealerweise nur in Verbindung mit Smartpointern verwenden
jakuoiz schrieb:
wenn ich ganz normal in einer funktion/methode eine instanz initialisiere
myclass h = myclass(...)dann wird es doch selbstständig aufgeräumt, sobald ich den fokus verlasse richtig?
richtig

-
hallo, ich muss mich doch nur um ein delete kümmern, wenn ich irgendwo eine instanz via new .... starte, richtig?
Kommt drauf an. Generell schon. Es gibt Ausnahmen.
immer ... sollte man ...RAII
