Încapsulare

Încapsularea înseamnă ascunderea datelor interne și expunerea lor doar prin metode controlate (getteri și setteri).

encapsulation.cpp
class Elev {
private:
  string nume;
  int nota;

public:
  Elev(string n, int nota) : nume(n) { setNota(nota); }

  string getNume() const { return nume; }

  int getNota() const { return nota; }

  void setNota(int n) {
    if (n >= 1 && n <= 10) nota = n;
    else cout << "Nota invalida!" << endl;
  }
};

Elev e("Ana", 9);
e.setNota(11);       // "Nota invalida!" — validare!
e.setNota(10);
cout << e.getNota(); // 10
Încapsularea permite validarea datelor, schimbarea implementării interne fără a afecta codul care folosește clasa, și prevenirea stărilor invalide.