Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Encapsulation de données en C++

Tous les programmes C++ sont composés des deux éléments fondamentaux suivants −

L'encapsulation est un concept de programmation orientée objet qui relie les données et les fonctions qui manipulent les données, et qui les protège des interférences extérieures et des abus. L'encapsulation des données a conduit au concept important de la POO de masquage des données .

Encapsulation des données est un mécanisme de regroupement des données, des fonctions qui les utilisent et de l'abstraction des données est un mécanisme permettant d'exposer uniquement les interfaces et de masquer les détails d'implémentation à l'utilisateur.

C++ prend en charge les propriétés d'encapsulation et de masquage des données grâce à la création de types définis par l'utilisateur, appelés classes . Nous avons déjà étudié qu'une classe peut contenir private, protected et public membres. Par défaut, tous les éléments définis dans une classe sont privés. Par exemple −

class Box {
   public:
      double getVolume(void) {
         return length * breadth * height;
      }

   private:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
};

Les variables longueur, largeur et hauteur sont privées . Cela signifie qu'ils ne sont accessibles qu'aux autres membres de la classe Box, et à aucune autre partie de votre programme. C'est une façon d'obtenir l'encapsulation.

Pour rendre des parties d'une classe publiques (c'est-à-dire accessibles à d'autres parties de votre programme), vous devez les déclarer après le public mot-clé. Toutes les variables ou fonctions définies après le spécificateur public sont accessibles par toutes les autres fonctions de votre programme.

Faire d'une classe l'amie d'une autre expose les détails d'implémentation et réduit l'encapsulation. L'idéal est de garder autant de détails de chaque classe cachés de toutes les autres classes que possible.

Exemple d'encapsulation de données

Tout programme C++ dans lequel vous implémentez une classe avec des membres publics et privés est un exemple d'encapsulation et d'abstraction de données. Prenons l'exemple suivant −

Démo en direct
#include <iostream>
using namespace std;

class Adder {
   public:
      // constructor
      Adder(int i = 0) {
         total = i;
      }
      
      // interface to outside world
      void addNum(int number) {
         total += number;
      }
      
      // interface to outside world
      int getTotal() {
         return total;
      };
   
   private:
      // hidden data from outside world
      int total;
};

int main() {
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Total 60

La classe ci-dessus additionne des nombres et renvoie la somme. Les membres publics addNum et getTotal sont les interfaces avec le monde extérieur et un utilisateur doit les connaître pour utiliser la classe. Le membre privé total est quelque chose qui est caché au monde extérieur, mais qui est nécessaire au bon fonctionnement de la classe.

Concevoir une stratégie

La plupart d'entre nous ont appris à rendre les membres de classe privés par défaut à moins que nous ayons vraiment besoin de les exposer. C'est juste une bonne encapsulation .

Ceci s'applique le plus souvent aux membres de données, mais s'applique également à tous les membres, y compris les fonctions virtuelles.


Langue C

  1. Types de données C++
  2. Opérateurs C++
  3. Classes et objets C++
  4. Modèles de classe C++
  5. Encapsulation Java
  6. Type de données Char C++ avec exemples
  7. Java - Encapsulation
  8. Java - Structures de données
  9. Classes de stockage en C++