Red de conocimiento de recetas - Recetas caseras - ¿Cómo funciona la herencia en C++?

¿Cómo funciona la herencia en C++?

Respuesta: Hay tres formas de herencia en C++: pública, protegida y privada. Especificar métodos de herencia.

Los diferentes métodos de herencia afectarán los derechos de acceso de los miembros de la clase base en las clases derivadas.

1. Métodos de herencia pública

Todos los miembros públicos de la clase base son propiedades públicas en la clase derivada;

Todos los miembros protegidos de la clase base son públicos propiedades en la clase derivada Todas las propiedades de la clase están protegidas;

Todos los miembros privados de la clase base no están disponibles en la clase derivada.

2. Herencia protegida

Todos los miembros públicos de la clase base son propiedades protegidas en la clase derivada;

Todas las propiedades protegidas de los miembros de la clase base están protegidas. propiedades en clases derivadas;

Todos los miembros privados de la clase base no se pueden usar en clases derivadas.

3. Herencia privada

Todos los miembros públicos de la clase base son propiedades privadas de la clase derivada;

Todos los miembros protegidos de la clase base son propiedades privadas. en la clase derivada. Todas las propiedades privadas en las clases derivadas son privadas;

Todos los miembros privados en la clase base no se pueden usar en la clase derivada.

4.

Extensión: .strong>

Usando el método de herencia de C++, puede encontrar:

1. están en la clase derivada Los derechos de acceso no deben ser superiores a los especificados en el método heredado.

Por ejemplo, cuando el método heredado está protegido, los derechos de acceso de los miembros de la clase base en la clase derivada también son los más protegidos. Los superiores a protegidos se degradarán a protegidos y los inferiores a protegidos. será degradado no será actualizado.

Por ejemplo, cuando el método heredado es público, los derechos de acceso de los miembros de la clase base en la clase derivada permanecerán sin cambios.

En otras palabras, los métodos heredados públicos, protegidos y privados se utilizan para especificar los derechos de acceso más altos de los miembros de la clase base en las clases derivadas.

2. No importa qué método de herencia se adopte, los miembros privados de la clase base no se pueden usar en la clase derivada (no se puede acceder a ellos ni llamarlos en la función miembro de la clase derivada).

3. Si desea que los miembros de la clase base sean heredados por la clase derivada y utilizados sin obstáculos, entonces estos miembros sólo pueden declararse como públicos o protegidos aquellos que no desee; uso en la clase derivada Los miembros se declaran privados. Si desea que los miembros de una clase base no estén expuestos al mundo exterior (no puedan acceder a ellos a través de objetos) ni se utilicen en clases derivadas, entonces debe declararlos como miembros protegidos.

Tenga en cuenta que lo que estamos diciendo aquí es que los miembros privados de la clase base no se pueden usar en clases derivadas, no que los miembros privados de la clase base no se pueden heredar.

De hecho, los miembros privados de la clase base pueden heredarse y ocupar memoria en la clase derivada, pero la clase derivada no puede verlos, lo que los hace inutilizables. Los miembros privados son una buena manera de ocultar la implementación de la clase base de las clases derivadas para reflejar la encapsulación orientada a objetos.

Dado que los modos de herencia privada y protegida cambiarán los derechos de acceso de los miembros de la clase base en las clases derivadas, lo que resultará en relaciones de herencia complejas, generalmente utilizamos el modo de herencia pública en el desarrollo real.

Enciclopedia Baidu-Herencia C++