Domeniu de vizibilitate (Scope)

Scope definește unde o variabilă este vizibilă și utilizabilă. O variabilă există doar în blocul {} în care e declarată.

int global = 100;  // variabilă globală

void func() {
  int local = 5;      // variabilă locală func
  cout << global << endl;  // 100 — accesibilă
  cout << local << endl;   // 5
}

int main() {
  int local = 10;     // altă variabilă locală (nu conflictu cu cea din func)
  cout << global << endl;  // 100
  cout << local << endl;   // 10
  // cout << local; // din func — EROARE, nu e vizibilă
  {
    int bloc = 99;    // variabilă de bloc
    cout << bloc << endl;  // 99
  }
  // cout << bloc; // EROARE — ieșit din scope
}
Evită variabilele globale când poți — fac codul greu de urmărit și testat. Preferă pasarea prin parametri.