|

Variabile Locale și Globale. Domeniu de Vizibilitate în C++ 11


1. Obiectivele lecției:

  • Să înțeleagă diferența dintre variabilele locale și globale.
  • Să înțeleagă conceptul de domeniu de vizibilitate.
  • Să implementeze exemple practice pentru utilizarea corectă a variabilelor locale și globale.

2. Variabile locale

  1. Definiție:
    • Variabilele locale sunt declarate în interiorul unui bloc de cod, cum ar fi o funcție sau un bloc delimitat de {}.
    • Sunt accesibile doar în interiorul blocului în care au fost declarate.
  2. Caracteristici:
    • Sunt create atunci când blocul de cod începe execuția și sunt distruse când blocul se termină.
    • Au o vizibilitate limitată la blocul în care sunt definite.
  3. Exemplu:

#include <iostream>

using namespace std;

void afiseaza() {

    int x = 10; // Variabilă locală

    cout << „Valoarea lui x: ” << x << endl;

}

int main() {

    afiseaza();

    // cout << x; // Eroare: x nu este vizibil în main

    return 0;

}


3. Variabile globale

  1. Definiție:
    • Variabilele globale sunt declarate în afara oricărei funcții și sunt accesibile în orice parte a programului, după punctul lor de declarație.
  2. Caracteristici:
    • Sunt create odată cu începutul programului și distruse odată cu terminarea programului.
    • Pot fi accesate și modificate de oriunde, ceea ce poate duce la conflicte dacă nu sunt utilizate cu atenție.
  3. Exemplu:

#include <iostream>

using namespace std;

int x = 20; // Variabilă globală

void afiseaza() {

    cout << „Valoarea lui x în afiseaza(): ” << x << endl;

}

int main() {

    cout << „Valoarea lui x în main(): ” << x << endl;

    afiseaza();

    return 0;

}


4. Domeniul de vizibilitate (Scope)

  1. Definiție:
    • Domeniul de vizibilitate reprezintă partea programului în care o variabilă poate fi accesată.
  2. Tipuri de domeniu de vizibilitate:
    • Bloc local: Vizibilitate limitată la blocul în care variabila este declarată.
    • Bloc global: Vizibilitate pe tot parcursul programului, după declarație.
    • Blocuri imbricate: Variabilele declarate în blocuri interioare ascund variabilele cu același nume din blocurile exterioare.

5. Conflicte între variabile locale și globale

  1. Utilizarea numelor identice:
    • O variabilă locală cu același nume ca o variabilă globală va ascunde variabila globală în interiorul blocului său.
  2. Exemplu:

#include <iostream>

using namespace std;

int x = 50; // Variabilă globală

void afiseaza() {

    int x = 10; // Variabilă locală

    cout << „Variabilă locală x: ” << x << endl;

    cout << „Variabilă globală x: ” << ::x << endl; // Accesare variabilă globală

}

int main() {

    afiseaza();

    cout << „Variabilă globală x în main(): ” << x << endl;

    return 0;

}


6. Avantaje și dezavantaje

  1. Variabile locale:
    • Avantaje:
      • Evită conflictele dintre funcții.
      • Utilizează memoria doar pe durata blocului în care sunt folosite.
    • Dezavantaje:
      • Nu sunt accesibile din alte funcții sau părți ale programului.
  2. Variabile globale:
    • Avantaje:
      • Accesibile din orice funcție, facilitând partajarea datelor.
    • Dezavantaje:
      • Pot duce la conflicte dacă sunt folosite neglijent.
      • Pot face debugging-ul mai dificil.

7. Exemple practice

  1. Exemplu: Utilizarea variabilelor globale pentru configurări comune

#include <iostream>

using namespace std;

const int MAX_VAL = 100; // Variabilă globală constantă

void verifica(int val) {

    if (val > MAX_VAL) {

        cout << „Valoarea depășește limita maximă!” << endl;

    } else {

        cout << „Valoarea este validă.” << endl;

    }

}

int main() {

    int valoare = 120;

    verifica(valoare);

    return 0;

}

  1. Exemplu: Preferința pentru variabile locale

#include <iostream>

using namespace std;

int suma(int a, int b) {

    int rezultat = a + b; // Variabilă locală

    return rezultat;

}

int main() {

    cout << „Suma: ” << suma(5, 7) << endl;

    return 0;

}


8. Activități practice pentru elevi

  1. Scrieți un program care utilizează o variabilă globală pentru a număra câte funcții au fost apelate.
  2. Realizați un program care demonstrează cum o variabilă locală ascunde o variabilă globală cu același nume.
  3. Implementați un program care folosește variabile locale pentru a calcula produsul elementelor unui vector.

9. Scheme logice

  1. Accesarea variabilelor:
    • Start -> Declarare variabilă globală -> Declarare variabilă locală -> Verificare accesibilitate -> Stop.
  2. Conflicte între variabile:
    • Start -> Declarare variabile cu același nume (global/local) -> Utilizare variabilă locală -> Accesare explicită a variabilei globale -> Stop.

10. Concluzie

  • Variabilele locale sunt utilizate pentru scopuri specifice, limitând vizibilitatea acestora la un bloc.
  • Variabilele globale sunt utile pentru date care trebuie partajate între mai multe funcții, dar pot genera conflicte dacă nu sunt gestionate cu atenție.
  • Alegerea tipului de variabilă depinde de cerințele programului, iar o bună practică este utilizarea minimă a variabilelor globale.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *