Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Modificateurs d'Accès dans l'Héritage | Aperçu de l'Héritage
C++ Oop
course content

Contenu du cours

C++ Oop

C++ Oop

1. Fondamentaux de la POO en C++
2. Constructeurs et Destructeurs
3. Aperçu de l'Encapsulation
4. Aperçu de l'Héritage
5. Aperçu du Polymorphisme

book
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 publicClasse de Base protectedClasse de Base private
public Héritage
Public dans Classe Dérivée
Protégé dans Classe Dérivée
Non Accessible
protected Héritage
Protégé dans Classe Dérivée
Protégé dans Classe Dérivée
Non Accessible
private Héritage
Privé dans Classe Dérivée
Privé dans Classe Dérivée
Non Accessible
cpp

public

cpp

protected

cpp

private

copy
12345
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.

cpp

main

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; }

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.

Qu'est-ce qui détermine comment les membres d'une classe de base peuvent être accédés par une classe dérivée ?

Qu'est-ce qui détermine comment les membres d'une classe de base peuvent être accédés par une classe dérivée ?

Sélectionnez quelques réponses correctes

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
We're sorry to hear that something went wrong. What happened?
some-alt