Incapsulamento C++


Incapsulamento

Il significato di Encapsulation è assicurarsi che i dati "sensibili" siano nascosti agli utenti. Per ottenere ciò, è necessario dichiarare variabili/attributi di classe come private(non è possibile accedere dall'esterno della classe). Se vuoi che altri leggano o modifichino il valore di un membro privato, puoi fornire metodi get e set pubblici.


Accedi ai membri privati

Per accedere a un attributo privato, utilizzare i metodi pubblici "get" e "set":

Esempio

#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

Esempio spiegato

L' salaryattributo è private, che hanno accesso limitato.

Il setSalary()metodo public prende un parametro ( s) e lo assegna salaryall'attributo (salary = s).

Il getSalary()metodo public restituisce il valore dell'attributo private salary.

All'interno main(), creiamo un oggetto della Employeeclasse. Ora possiamo usare il setSalary()metodo per impostare il valore dell'attributo private su 50000. Quindi chiamiamo il getSalary()metodo sull'oggetto per restituire il valore.


Perché incapsulamento?

  • È considerata una buona pratica dichiarare gli attributi della tua classe come privati ​​(il più spesso possibile). L'incapsulamento garantisce un migliore controllo dei dati, perché tu (o altri) potete modificare una parte del codice senza influire su altre parti
  • Maggiore sicurezza dei dati