Latest web development tutorials

les données de l'encapsulation de C

Tous les programmes C ++ ont deux éléments de base:

  • déclarations de programme (code): Cela fait partie d'un programme pour effectuer une action, ils sont appelés fonctions.
  • Programme des données:Les données sont des informations de programme, les fonctions du programme seront affectés.

Encapsulation est un concept de programmation orienté objet dans les données de fonction et manipulation de données liées entre elles, afin d'éviter toute ingérence extérieure et une mauvaise utilisation, assurant ainsi la sécurité. encapsulation de données sortent d'un autre importants concepts de POO, à savoir, lesdonnées se cacher.

encapsulation des données est un mécanisme permettant de fonctionner données et manipulation de données abstraction de donnéesfourni est un seul exposé aux interfaces utilisateur et les détails de mise en œuvre le mécanisme caché.

En créant un C ++ supportde classe encapsulation et les données se cachant (public, protégé, privé).Nous savons déjà que la classe contient des membres privés (privé), pour protéger les membres de la (protégée) et des membres des membres du public (public). Par défaut, tous les éléments définis dans la classe sont privées. Par exemple:

class Box
{
   public:
      double getVolume(void)
      {
         return length * breadth * height;
      }
   private:
      double length;      // 长度
      double breadth;     // 宽度
      double height;      // 高度
};

longueur variable, la largeur et la hauteur sont privées (privé). Cela signifie qu'ils ne sont accessibles que par d'autres membres de la classe Box, vous ne pouvez pas accéder à d'autres parties du programme. Ceci est une façon d'atteindre l'emballage.

Afin de devenir un membre de la classe publique (qui est, d' autres parties du programme peuvent accéder), vous devez utiliser le mot - clépublique avant que ces membres sont déclarés.Tous les descripteurs sont définis dans le public derrière la variable ou la fonction peut être utilisée par les autres fonctions pour accéder au programme.

La classe est définie comme un ami d'une autre classe, il exposerait les détails de mise en œuvre, réduisant ainsi l'encapsulation. Idéalement, autant que possible, des détails en dehors de la mise en œuvre de peau de chaque classe.

Des exemples de paquets de données

Programme C ++, toute classe avec les membres des données publiques et privées peut être utilisé comme exemples d'encapsulation et de l'abstraction de données. Prenons les exemples suivants:

#include <iostream>
using namespace std;

class Adder{
   public:
      // 构造函数
      Adder(int i = 0)
      {
        total = i;
      }
      // 对外的接口
      void addNum(int number)
      {
          total += number;
      }
      // 对外的接口
      int getTotal()
      {
          return total;
      };
   private:
      // 对外隐藏的数据
      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 les résultats suivants:

Total 60

La classe au-dessus des chiffres ensemble et renvoie la somme.addNum Membre publique et GetTotalest l' interface externe, les utilisateurs ont besoin de savoir pour pouvoir utiliser leur classe. membres privés étrangerstotal est caché, les utilisateurs ne doivent pas comprendre, mais il est un travail de classe normale requise.

Stratégie de conception

Dans des circonstances normales, nous allons mettre en place un Etat membre de la classe privée (privée), à moins que nous avons vraiment besoin d'être exposés, de manière à assurer unebonne encapsulation.

Ceci est habituellement appliquée aux éléments de données, mais elle est également applicable à tous les membres, y compris des fonctions virtuelles.