Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Encapsulamento de dados em C++


Todos os programas C++ são compostos pelos seguintes dois elementos fundamentais -

Encapsulamento é um conceito de Programação Orientada a Objetos que une os dados e as funções que manipulam os dados e que mantém ambos protegidos contra interferência externa e uso indevido. O encapsulamento de dados levou ao importante conceito OOP de ocultação de dados .

Encapsulamento de dados é um mecanismo de agrupamento de dados e as funções que os usam e abstração de dados é um mecanismo de expor apenas as interfaces e ocultar os detalhes de implementação do usuário.

C++ suporta as propriedades de encapsulamento e ocultação de dados através da criação de tipos definidos pelo usuário, chamados de classes . Já estudamos que uma classe pode conter privado, protegido e público membros. Por padrão, todos os itens definidos em uma classe são privados. Por exemplo -
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
};

As variáveis ​​comprimento, largura e altura são privadas . Isso significa que eles podem ser acessados ​​apenas por outros membros da classe Box, e não por qualquer outra parte do seu programa. Esta é uma maneira de conseguir o encapsulamento.

Para tornar partes de uma classe públicas (ou seja, acessível a outras partes do seu programa), você deve declará-los após o público palavra-chave. Todas as variáveis ​​ou funções definidas após o especificador público são acessíveis por todas as outras funções em seu programa.

Tornar uma classe amiga de outra expõe os detalhes da implementação e reduz o encapsulamento. O ideal é manter o maior número possível de detalhes de cada classe escondidos de todas as outras classes.

Exemplo de encapsulamento de dados


Qualquer programa C++ em que você implementa uma classe com membros públicos e privados é um exemplo de encapsulamento e abstração de dados. Considere o seguinte exemplo -
Demonstração ao vivo
#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;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Total 60

A classe acima soma os números e retorna a soma. Os membros públicos addNum e getTotal são as interfaces para o mundo exterior e um usuário precisa conhecê-las para usar a classe. O membro privado total é algo que está escondido do mundo exterior, mas é necessário para que a classe funcione corretamente.

Estratégia de design


A maioria de nós aprendeu a tornar os membros da classe privados por padrão, a menos que realmente precisemos expô-los. Isso é bom encapsulamento .

Isso é aplicado com mais frequência a membros de dados, mas se aplica igualmente a todos os membros, incluindo funções virtuais.

Linguagem C

  1. Tipos de dados C++
  2. Operadores C++
  3. Classes e objetos C++
  4. Modelos de classe C++
  5. Encapsulamento Java
  6. Tipo de dados C++ Char com exemplos
  7. Java - Encapsulamento
  8. Java - Estruturas de Dados
  9. Classes de armazenamento em C++
  10. Estruturas de dados C++