- Introdução à aula
Todos nós sabemos que a linguagem C é uma linguagem orientada a processos e C ++ é uma linguagem orientada a objetos, então o que é orientado a processos e a objetos? Orientado a processos é focar no processo, analisar as etapas para resolver o problema e, gradualmente, resolver o problema chamando funções, enquanto orientado a objetos se concentra no objeto, dividindo uma coisa em diferentes objetos e completando-o pela interação entre os objetos. ???????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????? ?????????????????????????????????????
Em linguagem C, usamos a palavra-chave struct para definir estruturas. Estruturas só podem definir variáveis. O que devemos fazer se definirmos funções? Em C ++, podemos definir não apenas variáveis, mas também funções em estruturas, e preferimos usá-las em C ++ A classe de palavra-chave é usada em seu lugar.
- Definição de classe
Como definir uma classe? O formato é o seguinte
class classname//类的名字
{
//类体:成员变量和成员函数组成
};
Os elementos de uma classe são chamados de membros da classe, os dados da classe são chamados de atributos ou variáveis de membro da classe e as funções da classe são chamadas de métodos ou funções de membro da classe. Prefiro chamá-los de variáveis de membro e funções de membro, respectivamente.
Existem duas maneiras de definir uma classe:
1. A declaração e a definição são todas colocadas no corpo da classe. Deve-se observar que se a função de membro for definida na classe, o compilador pode tratá-la como uma função embutida.
class person
{
public:
void show()//声明和定义全部放在类体中
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
public:
char* _name;
char* _sex;
int _age;
};
2. A declaração é colocada no arquivo de cabeçalho .h e a definição da classe é colocada no arquivo .cpp (método recomendado)
//person.h文件
class person
{
public:
void show()
public:
char* _name;
char* _sex;
int _age;
};
//person.cpp
#include"person.h"
void person::show()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
- Qualificadores de acesso de classe e embalagem
Primeiro, faça a pergunta: Qual é a diferença entre struct e class em C ++?
C ++ precisa ser compatível com a linguagem C, então em C ++ struct pode ser usado como uma estrutura e também pode definir classes. É o mesmo que a classe de definição de classe. A diferença é que o método de acesso padrão para membros em struct é público e o acesso padrão para membros da classe O método é privado.
Público e privado são introduzidos aqui, que são os qualificadores de acesso da classe.Há três tipos de qualificadores de acesso: público (público), privado (privado) e protegido (protegido).
Descrição do qualificador de acesso:
- Membros modificados pelo público podem ser acessados diretamente fora da classe
- Os membros modificados protegidos e privados não podem ser acessados diretamente fora da classe (os dois são semelhantes)
- O escopo dos direitos de acesso começa a partir da posição onde o qualificador de acesso aparece até que o próximo qualificador de acesso apareça
- Os qualificadores de acesso são úteis apenas em tempo de compilação. Depois que os dados são mapeados para a memória, não há diferença nos qualificadores de acesso.
Portanto, podemos pensar na maneira como o C ++ implementa o encapsulamento combinando as propriedades e métodos do objeto com uma classe para tornar o objeto mais completo e fornecer seletivamente sua interface para usuários externos por meio de permissões de acesso.
O encapsulamento é essencialmente um tipo de gestão, semelhante à gestão de um museu. Se uma pilha de relíquias culturais for colocada em um lugar para as pessoas verem, pode ter desaparecido após um período de tempo sem gestão, então o museu será construído para coletar essas relíquias culturais. Encapsuladas, o objetivo não é encapsular todas elas para que não possam ser vistas, então um canal de bilheteria é aberto para que todos possam visitar sob supervisão e nem todas as relíquias culturais podem ser vistas. Algumas relíquias culturais não podem ser vistos, isto é, eles estão completamente encapsulados. Isso é o mesmo que uma classe.Se você não quiser que as pessoas vejam, use private / protected para encapsular membros e abrir alguns membros públicos para acesso, então a essência do encapsulamento é um tipo de gerenciamento.