Encapsulation C++


Encapsulation

La signification d' Encapsulation est de s'assurer que les données "sensibles" sont cachées aux utilisateurs. Pour ce faire, vous devez déclarer les variables/attributs de classe en tant que private(accessibles depuis l'extérieur de la classe). Si vous souhaitez que d'autres personnes lisent ou modifient la valeur d'un membre privé, vous pouvez fournir des méthodes get et set publiques.


Accéder aux membres privés

Pour accéder à un attribut privé, utilisez les méthodes publiques "get" et "set":

Exemple

#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;
}

Exemple expliqué

L' salaryattribut est private, dont l'accès est restreint.

La setSalary()méthode publique prend un paramètre ( s) et l'affecte à l' salaryattribut (salaire = s).

La getSalary()méthode publique renvoie la valeur de l' salaryattribut privé.

À l' intérieur main()de , nous créons un objet de la Employeeclasse. Nous pouvons maintenant utiliser la setSalary()méthode pour définir la valeur de l'attribut privé sur 50000. Ensuite, nous appelons la getSalary()méthode sur l'objet pour renvoyer la valeur.


Pourquoi l'encapsulation ?

  • Il est considéré comme une bonne pratique de déclarer vos attributs de classe comme privés (aussi souvent que vous le pouvez). L'encapsulation assure un meilleur contrôle de vos données, car vous (ou d'autres) pouvez modifier une partie du code sans affecter les autres parties
  • Sécurité accrue des données