Introdução ao encapsulamento em C ++

Encapsulamento significa o processo de agrupar os dados e funções em uma única cápsula. Ele também protege os dados de outras classes, limitando o acesso. Basicamente, oculta os dados. Se dermos um exemplo da faculdade no mundo real, temos departamentos diferentes, como Física, Química e Biologia, etc. Pode ocorrer uma situação em que, o chefe do departamento de Física precisa de algumas informações do departamento de Biologia, ele não pode acessar os dados desse departamento diretamente. Primeiro, ele deve entrar em contato com o chefe do departamento de biologia e solicitar que ele forneça os dados. É assim que o encapsulamento funciona.

Como usar o encapsulamento em C ++?

Para conseguir isso, precisamos seguir os passos abaixo:

  1. Primeiro, precisamos tornar todos os membros de dados privados.
  2. Em seguida, as funções públicas getter e setter devem ser criadas para cada membro de dados de forma que, a função get obtenha o valor do membro de dados e a função set defina o valor do membro de dados.

Encapsulamento e ocultação de dados podem ser alcançados em C ++, usando tipos definidos pelo usuário chamados Classes. Os especificadores de acesso nas classes podem ser privados, protegidos ou públicos. Por padrão, todos os itens de uma classe são privados. De acordo com a necessidade, podemos alterar os níveis de acesso. Três níveis de especificadores de acesso são os seguintes:

  • Privado : os membros da mesma classe podem acessar os dados.
  • Público : Todas as classes podem acessar os dados.
  • Protegido : o acesso aos dados é permitido para membros da mesma classe ou classes derivadas.

O melhor uso do encapsulamento é feito somente quando usamos privado ou protegido. Ao usar public, temos que ter certeza disso, sabemos sua necessidade adequada no código.

Para explicar isso, vamos dar uma olhada na classe abaixo.

Aqui, física, química e biologia são do tipo double e são variáveis ​​privadas. GetTotalMarks () é um método público usado para recuperar as notas totais de todos os três assuntos. Não podemos acessar cada assunto em outra classe devido ao seu nível de proteção. Mas podemos acessar o método e podemos ser usados ​​para recuperar o total de notas passando marcas individuais de assunto. Podemos definir as marcas de cada assunto usando o método setter, que veremos no próximo exemplo.

Exemplo de encapsulamento em C ++ com etapas

Abaixo está a instrução passo a passo para implementar o encapsulamento.

1) Vamos considerar o cenário em que precisamos calcular a pontuação total do aluno calculando a soma em três disciplinas, como Física, Química e Biologia. Mas a condição é tal que outra classe

2) Primeiro, inclua o iostream para a funcionalidade de entrada e saída.

3) Use o espaço de nome std

4) Escreva uma classe para armazenar todos os dados e funções. Que seja aluno.

5) Declarar as variáveis ​​privadas física, química e biologia. Isso indica que não podemos acessar as variáveis ​​fora desta turma do aluno. Mas podemos acessá-los localmente e modificar o valor, se necessário. Para modificar o valor, podemos escrever uma função setter pública e acessá-la em outra classe.

6) Escreva uma função chamada SetMarks, que será usada para definir os valores das variáveis ​​privadas. Como não podemos acessar as variáveis ​​privadas física, química e biologia fora da turma, precisamos dessa função para definir esses valores a partir da turma externa. Este método será público, pois precisamos acessá-lo fora da classe. Precisamos de três parâmetros para obter os valores para cada assunto. Dentro da função, definiremos o valor das variáveis ​​privadas.

7) Precisamos de mais um método para obter a pontuação total dos três sujeitos, adicionando as notas. Este método também é público. Basta chamar esse método fora da classe e obteremos a soma das notas das três disciplinas.

8) Agora fora desta classe, escreveremos a função principal.

9) Dentro da função principal primeiro, acessaremos o aluno da turma e criaremos um objeto da turma.

10) Na próxima etapa, chamaremos a função para definir as marcas dos três assuntos. Aqui passaremos as marcas como parâmetros para a função. Abaixo está o trecho de código para conseguir isso.

11) Em seguida, obteremos o total de notas e imprimiremos o valor. E retorne 0 no final.

12) Você consegue adivinhar a saída do código? Você está certo. A saída é mostrada abaixo.

Saída: 240

13) Agora vamos analisar como conseguimos essa saída. Como não conseguimos acessar as variáveis ​​privadas, escrevemos uma função Setter que pega valores de outra classe e modifica as variáveis. A função Getter busca as variáveis, as adiciona e envia a nota total do aluno. Cada vez que passamos três valores diferentes para a função setter, podemos ver que o total de notas que obtemos também varia de acordo.

14) A partir disso, podemos dizer que o encapsulamento nos ajuda a proteger alguns dos dados necessários e também as funções setter e getter são usadas para alterar seus valores. Ao fazer isso. A proteção também é alcançada sem prejudicar nosso objetivo.

Conclusão

Neste artigo, aprendemos sobre como o encapsulamento pode ser alcançado em C ++. Ao fazer isso, podemos obter os seguintes benefícios.

  • Classes após o encapsulamento aumentam a legibilidade e reduzem a complexidade.
  • Ajuda na proteção dos dados.
  • A privacidade dos dados na classe pode ser alterada sem modificar o código inteiro usando modificadores de acesso.

Artigos recomendados

Este é um guia para o encapsulamento em C ++. Aqui discutimos como usar o encapsulamento em C ++ junto com Exemplo de encapsulamento em C ++ com etapas. Você também pode consultar os seguintes artigos para saber mais -

  1. Algoritmo de criptografia
  2. Criptografia de chave simétrica
  3. O que é criptografia?
  4. Introdução ao encapsulamento em C
  5. Encapsulamento em JavaScript (Vantagens)
  6. Modificadores de acesso em PHP