Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Modificadores de Acceso en la Herencia | Visión General de la Herencia
POO en C++
course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
Modificadores de Acceso en la Herencia

Los modificadores de acceso desempeñan un papel fundamental en la programación orientada a objetos, especialmente en la herencia. Determinan cómo los miembros (atributos y métodos) de una clase base pueden ser accedidos por las clases derivadas. Comprender estos modificadores es esencial para diseñar clases efectivas y mantener la encapsulación e integridad de los datos.

Tipos de acceso en la herencia

Una clase puede derivarse de otra clase. La clase derivada hereda miembros de la clase base, pero la accesibilidad de estos miembros heredados depende tanto del modificador de acceso utilizado en la clase base como del tipo de herencia.

Base Class publicBase Class protectedBase Class private
public

Public in Derived Class

Protected in Derived Class

Not Accessible

protected

Protected in Derived Class

Protected in Derived Class

Not Accessible

private

Private in Derived Class

Private in Derived Class

Not Accessible

public.cpp

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

copy
12345
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };

Conclusión sobre el control de acceso y la herencia

En la herencia orientada a objetos, los miembros private de una clase base son inaccesibles para las clases derivadas, protegiéndolos de modificaciones o consultas. Los miembros Protected solo pueden ser accedidos dentro de la subclase, mientras que los miembros public pueden ser accedidos externamente. Puede experimentar con esto utilizando el siguiente fragmento de código.

main.cpp

main.cpp

copy
1234567891011121314151617181920
class Base { public: int publicAttribute; protected: int protectedAttribute; private: int privateAttribute; }; class PublicDerived : public Base {}; class ProtectedDerived : protected Base {}; class PrivateDerived : private Base {}; int main() { PublicDerived obj1; ProtectedDerived obj2; PrivateDerived obj3; }
Note
Nota

Los miembros Protected, accesibles dentro de las clases derivadas y sus derivadas, funcionan como un puente entre los elementos private y public.

Los constructores y destructores se invocan automáticamente para los objetos de clase derivada, garantizando la correcta inicialización y liberación de recursos. Para acceder directamente a estos elementos de la clase base, los constructores y destructores deben declararse como public.

question mark

¿Qué determina cómo pueden accederse los miembros de una clase base desde una clase derivada?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
Modificadores de Acceso en la Herencia

Los modificadores de acceso desempeñan un papel fundamental en la programación orientada a objetos, especialmente en la herencia. Determinan cómo los miembros (atributos y métodos) de una clase base pueden ser accedidos por las clases derivadas. Comprender estos modificadores es esencial para diseñar clases efectivas y mantener la encapsulación e integridad de los datos.

Tipos de acceso en la herencia

Una clase puede derivarse de otra clase. La clase derivada hereda miembros de la clase base, pero la accesibilidad de estos miembros heredados depende tanto del modificador de acceso utilizado en la clase base como del tipo de herencia.

Base Class publicBase Class protectedBase Class private
public

Public in Derived Class

Protected in Derived Class

Not Accessible

protected

Protected in Derived Class

Protected in Derived Class

Not Accessible

private

Private in Derived Class

Private in Derived Class

Not Accessible

public.cpp

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

copy
12345
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };

Conclusión sobre el control de acceso y la herencia

En la herencia orientada a objetos, los miembros private de una clase base son inaccesibles para las clases derivadas, protegiéndolos de modificaciones o consultas. Los miembros Protected solo pueden ser accedidos dentro de la subclase, mientras que los miembros public pueden ser accedidos externamente. Puede experimentar con esto utilizando el siguiente fragmento de código.

main.cpp

main.cpp

copy
1234567891011121314151617181920
class Base { public: int publicAttribute; protected: int protectedAttribute; private: int privateAttribute; }; class PublicDerived : public Base {}; class ProtectedDerived : protected Base {}; class PrivateDerived : private Base {}; int main() { PublicDerived obj1; ProtectedDerived obj2; PrivateDerived obj3; }
Note
Nota

Los miembros Protected, accesibles dentro de las clases derivadas y sus derivadas, funcionan como un puente entre los elementos private y public.

Los constructores y destructores se invocan automáticamente para los objetos de clase derivada, garantizando la correcta inicialización y liberación de recursos. Para acceder directamente a estos elementos de la clase base, los constructores y destructores deben declararse como public.

question mark

¿Qué determina cómo pueden accederse los miembros de una clase base desde una clase derivada?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2
some-alt