Red de conocimiento informático - Consumibles informáticos - Orientado a objetos (1)

Orientado a objetos (1)

1. Orientado a objetos es una idea de programación que trata todo como un objeto. Empaquete las variables de atributos que pertenecen a estas clases y las funciones que operan estas variables de atributos en una clase.

2. La diferencia entre orientado a procesos y orientado a objetos

Orientado a procesos: escriba código de arriba a abajo según la lógica empresarial

Orientado a objetos : encapsula datos y funciones, se puede desarrollar rápidamente y reducir la reescritura de código repetido.

Encapsulación, herencia, polimorfismo

1. Encapsulación

Combina datos con métodos de manipulación de datos, oculta las propiedades y detalles de implementación del objeto y solo los divulga Interfaz con el mundo exterior para interactuar con objetos. La esencia de la encapsulación es la gestión.

2. Herencia

Puedes usar todas las funciones de las clases existentes y extender las funciones sin reescribir la clase principal.

Método de herencia:

3. Polimorfismo

La misma operación actúa sobre diferentes objetos y puede tener diferentes interpretaciones y producir diferentes resultados de ejecución. Esto es Polimorfismo. Simplemente use la referencia de la clase base para apuntar al objeto de la subclase.

Implementación polimórfica: reescritura, sobrecarga

1. Reescribir

significa que hay funciones redefinidas en la clase derivada. El nombre de su función, la lista de parámetros y el tipo de valor de retorno deben ser coherentes con la función anulada en la clase base. Cuando el objeto de clase derivada lo llama, se llamará a la función anulada de la clase derivada y no se llamará a la función anulada. llamado.

La función anulada en la clase base anulada debe tener una modificación virtual.

Ejemplo:

2. Sobrecarga

Generalmente usamos varias funciones al escribir código, pero sus funciones de implementación son las mismas, pero algunos detalles son diferentes. . En C, la gente ha propuesto usar un nombre de función para definir múltiples funciones, lo que se conoce como sobrecarga de funciones.

1. C utiliza tecnología de manipulación de nombres para cambiar el nombre de las funciones y distinguir funciones con el mismo nombre con diferentes parámetros. La deformación de nombres se realiza durante la fase de compilación.

2. Agregue la palabra clave virtual antes de la función de la clase base y reescriba la función en la clase derivada. La función correspondiente se llamará de acuerdo con el tipo real del objeto en tiempo de ejecución.

Si el tipo de objeto es una clase derivada, llame a la función de la clase derivada; si el tipo de objeto es una clase base, llame a la función de la clase base.

Las funciones con el mismo nombre no están permitidas en el lenguaje C, porque los nombres de las funciones son los mismos durante la compilación, a diferencia de C, que agrega tipos de parámetros y tipos de retorno como los nombres compilados de las funciones para lograr la sobrecarga. . Si desea utilizar el lenguaje C para mostrar la sobrecarga de funciones, puede lograrlo de las siguientes maneras:

1. Utilice punteros de función para implementarlo. Las funciones sobrecargadas no pueden usar el mismo nombre, pero la función de sobrecarga. se implementa de manera similar.

2. Las funciones sobrecargadas utilizan parámetros variables, como la función open para abrir un archivo.

3. gcc tiene funciones integradas y el programa puede implementar la sobrecarga de funciones mediante el uso de funciones compiladas

Ejemplo:

1. Construcción predeterminada y construcción de inicialización . La inicialización se realiza al definir un objeto de una clase.

Ejemplo:

Con la construcción parametrizada, el compilador ya no proporciona un constructor predeterminado.

2. Copiar constructor.

3. Mover constructor. Se utiliza para convertir implícitamente variables de otros tipos en objetos de esta clase.

El siguiente constructor de conversión convierte el tipo int r en un objeto de tipo Estudiante. La edad del objeto es r y el número es 1004.

Constructor sin parámetros, constructor de copia, operador de asignación, destructor (no virtual).

Resumen:

Constructor de clase principal-gt; Constructor de objeto de clase miembro-gt; Autoconstructor

El orden de destrucción es opuesto al orden de construcción

p>

p>