Podręcznik
Wersja podręcznika: 1.0
Data publikacji: 01.01.2022 r.
3. Definicje zmiennych i ich zasięg
3.2. Czas życia zmiennej
Pojęcie czasu życia zmiennej można zdefiniować następująco:
Czas życia zmiennej jest równy czasowi wykonania programu jedynie w przypadku zmiennych globalnych. Zmienne globalne są inicjowane przed uruchomieniem, kasowane po zakończeniu programu.
Zmienne lokalne są tworzone w momencie ich definicji, natomiast kasowane w momencie opuszczenia zasięgu w którym mogłyby być widoczne (a więc do nawiasu klamrowego zamykającego). Po skasowaniu zmiennej nie ma już możliwości odczytania jej zawartości. Zarządzanie czasem życia zmiennych statycznych jest w pełni automatyczne.
Zainteresowani mogą uruchomić poniższy programik – dzięki własnej klasie i jej konstruktorowi i destruktorowi informacje o tworzeniu i kasowaniu zmiennej będzie wyświetlana na ekranie.
#include <cstdlib>
#include <iostream>
using namespace std;
class CMoja {
public:
CMoja() { cout << "Tworze\n"; }
~CMoja() { cout << "Kasuje\n"; }
};
CMoja moja;
void testMoja() {
cout << "W funkcji: \n";
CMoja a;
cout << "Teraz dostepna:\n";
}
int main(int argc, char *argv[]) {
cout << "Przed funkcja: \n";
testMoja();
cout << "po funkcji: \n";
cout << "przed definicja\n";
CMoja b;
cout << "koniec programu\n";
system("PAUSE");
return EXIT_SUCCESS;
}