Latest web development tutorials

C ++ dati incapsulamento

Tutti i programmi C ++ hanno due elementi fondamentali:

  • le dichiarazioni del programma (codice): Questo è parte di un programma per eseguire un'azione, essi sono chiamati funzioni.
  • Programma dei dati: i dati sono informazioni sul programma, le funzioni del programma saranno interessati.

L'incapsulamento è un concetto di programmazione orientata agli oggetti nel data funzione e la manipolazione dei dati legati tra loro, in modo da evitare interferenze esterne e l'uso improprio, assicurando in tal modo la sicurezza. incapsulamento dei dati venire fuori un altro importante concetti OOP, vale a dire,nascondere dati.

incapsulamento dei dati è un meccanismo di funzionare i dati e la manipolazione dei dati in bundle astrazione dei datiè solo uno esposto alle interfacce utente e dettagli di implementazione meccanismo nascosto.

Con la creazione di un supportodi classe incapsulamento C ++ e dati nascosti (pubblico, protetto, privato).Sappiamo già che la classe contiene i membri privati ​​(private), per proteggere i membri della (protetto) ei membri dei membri pubblici (pubblici). Per impostazione predefinita, tutti gli elementi definiti nella classe sono privati. Ad esempio:

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

Lunghezza variabile, larghezza e altezza sono privati ​​(private). Questo significa che si può accedere solo da altri membri della classe di sicurezza, non è possibile accedere ad altre parti del programma. Questo è un modo per ottenere il pacchetto.

Per diventare un membro della classe pubblico (vale a dire, le altre parti del programma possono accedere), è necessario utilizzare la parola chiavepubblica prima di questi membri vengono dichiarati.Tutti gli identificatori sono definiti nel pubblico dietro la variabile o la funzione può essere utilizzato da tutte le altre funzioni per accedere al programma.

La classe è definito come un amico di un'altra classe, esporrebbe dettagli di implementazione, riducendo così l'incapsulamento. Idealmente, per quanto possibile al di fuori dettagli nascondere implementazione di ciascuna classe.

Esempi di pacchetti di dati

C ++ programma, qualsiasi classe con i membri dei dati pubbliche e private può essere utilizzato come esempi di incapsulamento e astrazione dei dati. Considerate i seguenti esempi:

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

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Total 60

La classe al di sopra dei numeri e restituisce la somma. Gli pubblicoaddNum e getTotalè interfaccia esterna, gli utenti hanno bisogno di sapere per poter usare la loro classe. membri privati esterototale è nascosta, gli utenti non hanno bisogno di capirlo, ma è un lavoro normale classe richiesta.

design Strategy

In circostanze normali, ci sarà istituito uno stato membro della classe privata (private), a meno che non abbiamo davvero bisogno di essere esposto, in modo da garantire unabuona incapsulamento.

Questo è solitamente applicato ai membri di dati, ma è ugualmente applicabile a tutti i membri, comprese le funzioni virtuali.