Latest web development tutorials

C ++ enkapsulacji danych

Wszystkie programy w C ++ są dwa podstawowe elementy:

  • Sprawozdanie programowe (kod): Jest to część programu do wykonania działania, nazywane są funkcjami.
  • Program danych: Dane są informacje o programie, funkcje programowe zostaną naruszone.

Enkapsulacja jest pojęciem programowania obiektowego w danych funkcji i manipulowania danymi związanymi ze sobą, tak aby uniknąć ingerencji z zewnątrz i nadużyciom, zapewniając w ten sposób bezpieczeństwo. hermetyzacja danych wychodzących Innym ważnym koncepcji OOP, mianowicieukrywania danych.

hermetyzacja danych jest mechanizmem funkcjonować danych i manipulowanie danymi dołączonego abstrakcji danychjest tylko jedna narażona na interfejsów użytkownika i szczegóły wykonania ukryty mechanizm.

Tworząc C ++ wsparciaklasy enkapsulacji i ukrywanie danych (public, protected, private).Wiemy już, że klasa zawiera członków prywatnych (prywatny), aby chronić członkowie (chronione) oraz członków społeczeństwa (publicznych) członków. Domyślnie wszystkie elementy zdefiniowane w klasie są prywatne. Na przykład:

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

Zmienna długość, szerokość i wysokość są prywatne (private). Oznacza to, że mogą one być dostępne tylko dla innych członków klasy Box, nie można uzyskać dostęp do innych części programu. Jest to sposób na osiągnięcie pakiet.

Aby stać się członkiem klasy publicznej (czyli inne części programu można uzyskać dostęp), należy użyć słowa kluczowegopublicznego przed deklarowane są te elementy.Wszystkie identyfikatory są określane w publicznej za zmiennej lub funkcji może być wykorzystywany przez wszystkie inne funkcje dostępu do programu.

Klasa jest zdefiniowana jako znajomego innej klasy, to odsłonić szczegóły wykonania, a tym samym zmniejszenie kapsułkowania. Najlepiej, jak najwięcej szczegółów Ukryj zewnętrznych realizacji każdej klasie.

Przykłady pakietów danych

Program C ++ każdej klasy z członkami dane publiczne i prywatne mogą być stosowane jako przykłady odwzorowania i pozyskiwania danych. Rozważmy następujące przykłady:

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

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Total 60

Klasę wyżej numerów razem i zwraca sumę. Publiczne UżytkownikaddNum i getTotaljest zewnętrzny interfejs, użytkownicy muszą wiedzieć, w celu wykorzystania ich klasę. prywatne obce członkowieCałości jest ukryty, użytkownicy nie muszą to zrozumieć, ale jest to normalne klasy prace wymagane.

Strategia projektowania

W normalnych warunkach, będziemy ustawić stan Prywatny członek klasy (prywatny), chyba, że naprawdę musimy być odsłonięta, tak aby zapewnićdobrą hermetyzację.

Zazwyczaj jest to stosowane do elementów danych, ale może być również zastosowany do wszystkich użytkowników, w tym funkcji wirtualnych.