Obszary dostępu do zmiennych

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2628 razy

Zmienne można podzielić pod względem dostępu do nich na globalne i lokalne. Globalne zmienne nie znajdują się ani w ciele żadnej funkcji, ani też metody klasy czy też w bloku instrukcji warunkowych i pętli, przez co tego typu zmienne są widoczne dla całego obszaru kodu programu, który znajduje się po deklaracji danej zmiennej. Zmienne lokalne mogą mieć taką samą nazwę co zmienne globalne i w takim przypadku mówi się, że zmienna lokalna przysłoniła zmienną globalną. Zmiennymi lokalnymi są również argumenty funkcji. Prosty przykład:

#include <iostream> using namespace std; void Function1(){ // cout<<x; // odkomentowanie tej linii spowoduje błąd podczas kompilacji, gdyż zmienna globalna x została zadeklarowana dopiero po deklaracji tej funkcji } int x = 100; void Function2(){ cout<<x<<endl<<endl; // tutaj funkcja odwołuje się do zmiennej globalnej } void Function3(int x){ cout<<x<<endl<<endl; // tutaj zmienna globalna została przysłonięta przez zmienną z listy funkcji } void Function4(){ int x = 200; // ta deklaracja zmiennej lokalnej przysłania zmienną globalną cout<<x<<endl<<endl; // wyświetli 200 a nie 100, bo odwołuje się do zmiennej lokalnej a nie globalnej x } int main(){ cout<<"Wysolanie funkcji, ktora odwoluje sie do zmiennej globalnej x: "; Function2(); cout<<"Wysolanie funkcji, ktora odwoluje sie do zmiennej x, podanej jako argument funkcji: "; Function3(10); cout<<"Wysolanie funkcji, ktora odwoluje sie do zmiennej lokalnej x: "; Function4(); cout<<"Wcisnij dowolny przycisk, aby zamknac program..."; cin.get(); return 0; }
Propozycje książek