Contenido del Curso
POO en C++
POO en C++
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 public | Base Class protected | Base 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
protected.cpp
private.cpp
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
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; }
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
.
¡Gracias por tus comentarios!