Contenido del Curso
C++ OOP
C++ OOP
Access Modifiers in Inheritance
Access modifiers in inheritance are crucial in C++ object-oriented programming. They dictate how members (attributes and methods) of a base class can be accessed by a derived class. Understanding these modifiers is essential for effective class
design and for maintaining encapsulation and integrity of the data.
Access Types of Inheritance
A class can be derived from another class. The derived class inherits members from the base class, but the accessibility of these inherited members depends on both the access modifier used in the base class and the type of inheritance.
Base Class public | Base Class protected | Base Class private | |
---|---|---|---|
public Inheritance | Public in Derived Class | Protected in Derived Class | Not Accessible |
protected Inheritance | Protected in Derived Class | Protected in Derived Class | Not Accessible |
private Inheritance | Private in Derived Class | Private in Derived Class | Not Accessible |
public
protected
private
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };
Access Control and Inheritance Conclusion
In object-oriented inheritance, private
members of a base class are inaccessible to derived classes, safeguarding them from modification or retrieval. Protected
members can only be accessed within the subclass, while public
members can be accessed externally. You can experiment with this using the code snippet below.
main
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; }
Protected
members, accessible within derived and further derived classes, serve as a bridge between private
and public
elements.
Constructors and destructors are automatically invoked for derived class objects, ensuring proper resource initialization and cleanup. To access these base class elements directly, constructors and destructors must be declared public
.
¡Gracias por tus comentarios!