Witam,
piszę tu ponieważ nie do końca rozumiem motyw usuwania obiektów i co za tym idzie zwalaniania pamieci.
Otóż jeżeli mam funkcję:
void foo(){
int a = 5;
//jakies operacje
}
to rozumiem, ze zmienna a zyje tylko do momentu wykonywania funkcji. Tzn po wykonaniu funkcji pamiec zajmowana przez zmienna a typu int jest zwalniana. Czy tak?
To teraz jesli mam funkcję:
void foo(){
MojaKlasa klasa = new MojaKlasa();
//jakies operacje
//delete klasa; //-czy potrzebne?
}
to czy sytuacja wyglada tak samo? Czy po wykonaniu funkcji obiekt klasa zostanie usuniety (a pamiec zwolniona) czy konieczne jest tutaj zastosowanie 'delete'?
Podobne pytanie ze zmiennymi globalnymi:
czy jesli w programie zadeklaruje publiczna zmianna int a; oraz publiczny obiekt klsay (tworzony za pomoaca new)
to czy po wyjsci z programu (jesli klasy nie usune deletem) nadal zajmuje ona pamiec? A zmienna nie?