Encapsulamento C++


Encapsulamento

O significado de Encapsulation , é garantir que os dados "sensíveis" estejam ocultos dos usuários. Para conseguir isso, você deve declarar variáveis/atributos de classe como private(não pode ser acessado de fora da classe). Se você quiser que outras pessoas leiam ou modifiquem o valor de um membro privado, você pode fornecer métodos get e set públicos.


Acessar membros privados

Para acessar um atributo privado, use os métodos públicos "get" e "set":

Exemplo

#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

Exemplo explicado

O salaryatributo é private, que tem acesso restrito.

O setSalary()método public recebe um parâmetro ( s) e o atribui ao salaryatributo (salary = s).

O getSalary()método public retorna o valor do salaryatributo privado.

Dentro main()de , criamos um objeto da Employeeclasse. Agora podemos usar o setSalary()método para definir o valor do atributo privado para 50000. Em seguida, chamamos o getSalary()método no objeto para retornar o valor.


Por que Encapsulamento?

  • É considerado uma boa prática declarar seus atributos de classe como privados (com a maior frequência possível). O encapsulamento garante um melhor controle de seus dados, porque você (ou outros) pode alterar uma parte do código sem afetar outras partes
  • Maior segurança dos dados