Contenu du cours
Programmation Orientée Objet en C++
Programmation Orientée Objet en C++
Modificateurs d'Accès en Héritage
Les modificateurs d'accès jouent un rôle crucial dans la programmation orientée objet, en particulier dans l'héritage. Ils déterminent comment les membres (attributs et méthodes) d'une classe de base peuvent être accessibles par les classes dérivées. Comprendre ces modificateurs est essentiel pour concevoir des classes efficaces et maintenir l'encapsulation et l'intégrité des données.
Types d'accès de l'héritage
Une classe peut être dérivée d'une autre classe. La classe dérivée hérite des membres de la classe de base, mais l'accessibilité de ces membres hérités dépend à la fois du modificateur d'accès utilisé dans la classe de base et du type d'héritage.
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 };
Contrôle d'accès et conclusion sur l'héritage
Dans l'héritage orienté objet, les membres private
d'une classe de base sont inaccessibles aux classes dérivées, les protégeant ainsi contre toute modification ou récupération. Les membres Protected
ne sont accessibles qu'à l'intérieur de la sous-classe, tandis que les membres public
sont accessibles de l'extérieur. Vous pouvez expérimenter cela à l'aide de l'extrait de code ci-dessous.
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; }
Les membres Protected
, accessibles au sein des classes dérivées et des classes dérivées ultérieures, servent de pont entre les éléments private
et public
.
Les constructeurs et destructeurs sont automatiquement appelés pour les objets de classe dérivée, garantissant une initialisation et une libération appropriées des ressources. Pour accéder directement à ces éléments de la classe de base, les constructeurs et destructeurs doivent être déclarés public
.
Merci pour vos commentaires !