Saltar al contenido

las variables miembro protegidas y privadas en la herencia de C++

El tutorial o código que verás en este artículo es la solución más rápida y efectiva que encontramos a tus dudas o problema.

Solución:

Ninguna clase puede acceder private variables Ni siquiera las subclases.

Solo las subclases pueden acceder protected variables

Todas las clases pueden acceder public variables

Todos los miembros de la clase base son parte de la clase derivada. Sin embargo, la clase derivada solo puede acceder a miembros que son públicos o protegidos.

Declarar un miembro del mismo nombre como miembro de una clase Base “sombrea” al miembro de la clase Base. Es decir, la clase Derivada tiene su propia variable independiente que tiene el mismo nombre que la versión de la clase base.

Esta es una elección personal, pero encuentro que el uso de variables para comunicarse entre las clases base y las clases derivadas conduce a un código más desordenado, por lo que tiendo a hacer que las variables miembro sean privadas o a usar el patrón PIMPL.

Los miembros privados de una clase se pueden heredar, pero sus clases derivadas no pueden acceder a ellos directamente. Se puede acceder a ellos utilizando métodos públicos o protegidos de la clase base.

El modo de herencia especifica cómo las clases derivadas pueden acceder a los miembros de datos públicos y protegidos.

Si la clase derivada hereda la clase base en privado modo,

  1. los miembros protegidos de la clase base son privado miembros de la clase derivada.
  2. Los miembros de datos públicos de la clase base son privado miembros de la clase derivada.

Si la clase derivada hereda la clase base en protegido modo,

  1. los miembros protegidos de la clase base son protegido miembros de la clase derivada.
  2. Los miembros de datos públicos de la clase base son protegido miembros de la clase derivada.

Si la clase derivada hereda la clase base en público modo,

  1. los miembros protegidos de la clase base son protegido miembros de la clase derivada.
  2. Los miembros de datos públicos de la clase base son público miembros de la clase derivada.

Consulte este enlace para obtener más aclaraciones: http://www.tutorialspoint.com/cplusplus/cpp_inheritance.htm

Acuérdate de que te brindamos la opción de decir si diste con la solución.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *