¿Todavía recuerdas la frase de la última lección: "Una clase es la abstracción y generalización de un objeto, y un objeto es la concreción y la instancia de una clase"? Después de aprender la definición de una clase, el siguiente paso es crear y usar objetos .
1. Creación de objetos:
Una clase es una estructura que contiene funciones. Es un tipo de datos autodefinido. Úselo para definir variables, que son objetos. Este es el llamado "objeto es una instancia concreta y una instancia de una clase". de esta clase está definida, también se puede decir Crear una instancia de un objeto, ¡eso es lo que significa!
El uso de objetos es el mismo que el uso de estructuras. Principalmente acceden a los miembros internos y se accede a todos ellos mediante , como por ejemplo:
EstudianteA;A.num=101;strcpy(A.name,dotcpp);A.score=100;A.print();
Cabe señalar que todas las variables miembro de la clase aquí se declaran como tipos públicos . Si se declaran como tipos privados, se les prohibirá informar errores si se accede directamente a ellas principalmente a través de objetos y variables en la función principal. La razón es que las variables de tipo privado son tipos privados y no permiten acceso externo.
Para las variables privadas que queremos proteger pero controlar, generalmente las declaramos como tipos privados y luego definimos un método de asignación especial de tipo público al mismo tiempo. Dado que los miembros internos pueden acceder a variables declaradas de forma privada, podemos usar esto. método público externo para controlar indirectamente estos miembros privados para lograr el efecto de encapsulación y protección, y este método de tipo público también se denomina interfaz externa de esta clase. ¡Por favor comprenda esta frase!
2. Puntero para objetar:
Al igual que las variables ordinarias, los objetos también son un espacio de memoria continuo, por lo que también puede crear un puntero al objeto, es decir, el puntero del objeto , para almacenar la dirección del objeto.
Entonces, el método de creación es similar al uso de un puntero de tipo general y el método de definición es el siguiente:
Nombre de clase * nombre del puntero;
Por ejemplo, defina Student *p; defina un puntero p de tipo Reloj. Debe quedar claro que el objeto no se crea aquí y, por supuesto, no se llamará al constructor. A continuación, puede asignar la dirección de un objeto de clase del mismo tipo a este puntero y luego acceder a los miembros del objeto a través de ->.
El código es el siguiente:
Estudiante*p;EstudianteA;p=&A;p->print();
Lo anterior es cómo usar punteros de objetos. Además de usarlos al asignar valores y acceder a miembros, también se recomienda usar punteros al pasar parámetros, porque pasan direcciones y no copian asignaciones entre objetos, lo que reduce la sobrecarga de memoria. y mejorar la eficiencia.
3. Referencia de objeto:
La referencia es un nuevo tipo en C++. Una referencia de objeto es un alias para un objeto de clase. En esencia, la dirección del objeto de clase se asigna al tipo de referencia. Entonces, ¿cómo definir el uso? Te lo mostramos a continuación.
EstudianteA;Estudiante&Aq=A;
Como se muestra en el código anterior, defina un objeto de tipo Estudiante, luego use & para definir un tipo de referencia de este tipo y asigne el objeto A a Aq como inicialización.
Las cosas a tener en cuenta son:
1. Al igual que los punteros, ambos deben ser del mismo tipo antes de que se pueda hacer referencia a ellos.
2. A menos que se utilice el valor de retorno o el parámetro formal de una función, se deben inicializar otros tipos de referencia al mismo tiempo.
3. El tipo de referencia no crea un nuevo objeto, por lo que no se llamará al constructor.
Entonces, dado que es un alias de un objeto de clase, el método de uso es el mismo que el del objeto de clase, utilizando el método alias.member para acceder, como por ejemplo:
EstudianteA;Estudiante&Aq=A;Aq.print();
Como puede ver, cuando se utiliza un tipo de referencia, la esencia sigue siendo la dirección almacenada, por lo que no habrá demasiada sobrecarga de memoria sin importar la definición. Se usa igual que el objeto de clase en sí. Al crear argumentos de función, simplemente pase el objeto de referencia directamente sin agregar caracteres de dirección, para que parezca más intuitivo y conveniente. Ésta es la ventaja de los tipos de referencia.