Contenu du cours
C++ Oop
C++ Oop
Modificateurs d'Accès dans l'Héritage
Modificateurs d'accès dans l'héritage sont cruciaux en programmation orientée objet C++. Ils dictent comment les membres (attributs et méthodes) d'une classe de base peuvent être accédés par une classe dérivée. Comprendre ces modificateurs est essentiel pour une conception de classe efficace et pour 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.
Classe de Base public | Classe de Base protected | Classe de Base private | |
---|---|---|---|
public Héritage | |||
protected Héritage | |||
private Héritage |
public
protected
private
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };
Conclusion sur le contrôle d'accès et l'héritage
Dans l'héritage orienté objet, les membres privés de la classe de base sont inaccessibles aux classes dérivées, les protégeant de toute modification ou récupération, et les membres protégés ne peuvent être accessibles que dans la sous-classe, tandis que les membres publics peuvent être accessibles de l'extérieur. Vous pouvez expérimenter cela en utilisant l'extrait de code ci-dessous.
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; }
Rappel
Les membres protégés, accessibles au sein des classes dérivées et des classes dérivées ultérieures, servent de pont entre les éléments privés et publics.
Les constructeurs et destructeurs sont automatiquement invoqués pour les objets de la classe dérivée, assurant une initialisation et un nettoyage appropriés des ressources. Pour accéder directement à ces éléments de la classe de base, les constructeurs et destructeurs doivent être déclarés publics.
Merci pour vos commentaires !