O melhor tutorial C ++ abstração de dados em 2024. Neste tutorial você pode aprender guia Acesso Abstract obrigatória,Benefícios abstração de dados,dados de instância Abstract,Estratégia de design,
abstração de dados refere-se apenas para fornecer informações críticas para o mundo exterior, e esconder os detalhes de implementação do seu plano de fundo, que o desempenho de apenas as informações necessárias, sem apresentar mais detalhes.
abstração de dados é uma dependência no interface de programação e tecnologia de separação de implementação (design).
Vamos dar alguns exemplos reais da vida real, como uma televisão, você pode ligar e desligar, mudar de canal, ajustar o volume, adição de componentes externos (como alto-falantes, VCR, DVD player), mas você não sabe a sua interno detalhes de implementação, isto é, você não sabe como ele é recebido por um sinal de cabo, como converter o sinal e, eventualmente, exibida na tela.
Portanto, podemos dizer que a TV para a sua implementação interna e interfaces externas separadas, e você não sabe o seu princípio interno, diretamente através de sua interface externa (como o botão de energia no controle remoto, controlador de volume de som) pode controlar a TV.
Agora, vamos começar a trabalhar, é em termos de programação C ++, C ++abstração de dados de classe possível.-Los para o mundo exterior proporciona um método comum para a operação de um grande número de objetos de dados, que é, de fato, o mundo exterior não sabia a implementação da classe interna.
Por exemplo, o programa pode chamar a funçãosort (), sem a necessidade de saber a função dos algoritmos utilizados para classificar os dados.Na verdade, a função de base da realização da espécie devido à diferente repositório variar, desde que a mesma interface, chamada de função, como de costume.
Em C ++, usamos a nossa própriaclasse para definir o tipo de dados abstratos (ADT).Você pode usar oostream classe coutobjeto para dados de saída para a saída padrão, como segue:
#include <iostream> using namespace std; int main( ) { cout << "Hello C++" <<endl; return 0; }
Aqui, você não entende como o textocout exibido na tela do usuário.Você só precisa saber a interface pública para, cout implementação subjacente pode ser alterado livremente.
Em C ++, usamos o guia acesso para definir a classe interface abstrata. Uma classe pode conter zero ou mais etiquetas de acesso:
tag frequência de acesso aparece, não há limite. Cada tag especifica o acesso seguido por membros dos níveis de acesso definidos. nível de acesso atribuído permanecerá em vigor até a próxima guia encontro Access ou fechar o tipo de corpo direita encontrou entre parênteses.
abstração de dados tem duas vantagens importantes:
seção privada define os membros de dados da classe, mesmo que apenas na preparação de tais autores podem alterar livremente os dados. Se forem implementadas mudanças, você só precisa verificar o código para a classe para ver qual o impacto que esta mudança pode causar. Se os dados é público, qualquer acesso directo à velha forma de membros de função de representação de dados são susceptíveis de ser afectadas.
C ++ programa, qualquer classe com os membros da abstração de dados públicos e privados podem ser usados como exemplos. 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 privadostotal de usuários não precisam saber, mas a classe pode trabalhar necessário.
Abstract para separar código na interface e implementação. Assim, no projeto de componentes, a interface deve permanecer independente da aplicação, de modo que se você alterar a implementação subjacente, a interface permanecerá inalterada.
Neste caso, independentemente de qualquer programa, utilizando a interface, a interface não será afectado, apenas para perceber a última recompilação.