Você ainda se lembra da frase da última lição: “Uma classe é a abstração e generalização de um objeto, e um objeto é a concretude e instância de uma classe”? Depois de aprender a definição de classe, o próximo passo é criar e usar objetos !
1. Criação de objetos:
Uma classe é uma estrutura que contém funções. É um tipo de dados autodefinido. Use-o para definir variáveis, que são objetos. desta classe está definido, também pode ser dito Instanciar um objeto, é isso que significa!
O uso de objetos é igual ao uso de estruturas. Eles acessam principalmente os membros internos e todos são acessados usando .
StudentA;A.num=101;strcpy(A.name,dotcpp);A.score=100;A.print();
Deve-se notar que as variáveis-membro da classe aqui são todas declaradas como tipos públicos . Se forem declaradas como tipos privados, serão proibidas de reportar erros se forem acessadas diretamente, principalmente por meio de objetos e variáveis na função principal. A razão é que as variáveis de tipo privado são tipos privados e não permitem acesso externo.
Para variáveis privadas que queremos proteger, mas queremos controlar, geralmente as declaramos como tipos privados e, ao mesmo tempo, definimos um método de atribuição especial do tipo público. Como os membros internos podem acessar variáveis declaradas de forma privada, podemos usar isso. método público externamente para controlar indiretamente esses membros privados para obter o efeito de encapsulamento e proteção, e esse método de tipo público também é chamado de interface externa desta classe. Por favor, entenda esta frase!
2. Ponteiro para objeto:
Assim como as variáveis comuns, os objetos também são um espaço de memória contínuo, portanto você também pode criar um ponteiro para o objeto, ou seja, o ponteiro do objeto , para armazenar o endereço do objeto.
Então o método de criação é semelhante ao uso de um ponteiro de tipo geral, e o método de definição é o seguinte:
Nome da classe * nome do ponteiro;
Por exemplo, defina Student *p; defina um ponteiro p do tipo Clock. Deve ficar claro que o objeto não é criado aqui e, claro, o construtor não será chamado. A seguir, você pode atribuir o endereço de um objeto de classe do mesmo tipo a esse ponteiro e, em seguida, acessar os membros do objeto por meio de ->.
O código é o seguinte:
Aluno*p;AlunoA;p=&A;p->print();
O texto acima mostra como usar ponteiros de objetos. Além de utilizá-los na atribuição de valores e no acesso a membros, também é recomendado o uso de ponteiros na passagem de parâmetros, pois eles passam endereços e não copiam atribuições entre objetos, reduzindo assim a sobrecarga de memória. e melhorar a eficiência.
3. Referência de objeto:
Referência é um novo tipo em C++. Uma referência de objeto é um alias para um objeto de classe. Em essência, o endereço do objeto de classe é atribuído ao tipo de referência. Então, como definir o uso? Mostre para você abaixo.
AlunoA;Aluno&Aq=A;
Conforme mostrado no código acima, defina um objeto do tipo Student, então use & para definir um tipo de referência deste tipo e atribua o objeto A a Aq como inicialização.
As coisas a serem observadas são:
1. Assim como os ponteiros, ambos devem ser do mesmo tipo antes de poderem ser referenciados.
2. A menos que o valor de retorno ou parâmetro formal de uma função seja usado, outros tipos de referência devem ser inicializados ao mesmo tempo!
3. O tipo de referência não cria um novo objeto, portanto o construtor não será chamado.
Portanto, por ser um alias de um objeto de classe, o método de uso é o mesmo do objeto de classe, usando o método alias.member para acessar, como:
AlunoA;Aluno&Aq=A;Aq.print();
Como você pode ver, ao usar um tipo de referência, a essência ainda é o endereço armazenado. Portanto, não importa a definição do parâmetro, não haverá muita sobrecarga de memória. usado da mesma forma que o próprio objeto de classe Ao criar argumentos de função, basta passar o objeto de referência diretamente, sem adicionar caracteres de endereço, para que pareça mais intuitivo e conveniente. Esta é a vantagem dos tipos de referência.