O melhor tutorial C ++ encapsulamento de dados em 2024. Neste tutorial você pode aprender Exemplos de pacotes de dados,Estratégia de design,
Todos os programas em C ++ tem dois elementos básicos:
Encapsulamento é um conceito de programação orientada a objetos nos dados de função e manipulação de dados ligadas entre si, de modo a evitar a interferência externa e uso indevido, garantindo assim a segurança. encapsulamento de dados saem de outros importantes conceitos OOP, nomeadamente,ocultação de dados.
encapsulamento de dados é um mecanismo para funcionar dados e manipulação de dados abstração de dadosfornecido apenas um está exposto aos interfaces de usuário e os detalhes de implementação mecanismo escondidos.
Ao criar um C ++ encapsulamento suporte declasse e os dados escondendo (público, protegido, privado).Nós já sabemos que a classe contém membros privados (particulares), para proteger os membros da (protegida) e membros dos membros públicos (públicas). Por padrão, todos os itens definidos na classe são privados. Por exemplo:
class Box { public: double getVolume(void) { return length * breadth * height; } private: double length; // 长度 double breadth; // 宽度 double height; // 高度 };
comprimento variável, largura e altura são privados (private). Isso significa que eles só podem ser acessados por outros membros da classe Box, você não pode acessar outras partes do programa. Esta é uma maneira de conseguir pacote.
Para se tornar um membro da classe pública (isto é, outras partes do programa podem acessar), você deve usar a palavra-chavepública antes deesses membros são declarados. Todos os identificadores são definidos no público atrás da variável ou função podem ser utilizados por todas as outras funções para aceder ao programa.
A classe é definida como um amigo de outra classe, ele iria expor detalhes de implementação, reduzindo assim o encapsulamento. Idealmente, tanto quanto possível, elementos fora hide implementação de cada classe.
C ++ programa, qualquer classe com membros de dados públicos e privados podem ser usados como exemplos de encapsulamento e abstração de dados. Considere os seguintes exemplos:
#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 o código acima é compilado e executado, ele produz os seguintes resultados:
Total 60
A classe acima dos números juntos e retorna a soma. Membro PúblicaaddNum e getTotalé interface externa, os usuários precisam saber para usar sua classe. membros privados externatotal está escondido, os usuários não precisam entender isso, mas é um trabalho de classe normais necessário.
Em circunstâncias normais, vamos configurar um estado membro da classe privada (private), a menos que realmente precisa ser exposto, de modo a garantiruma boa encapsulamento.
Este é normalmente aplicado aos membros de dados, mas é igualmente aplicável a todos os membros, incluindo funções virtuais.