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

Contenu du cours

Programmation Orientée Objet en C++

Programmation Orientée Objet en C++

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 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 publicBase Class protectedBase 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

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

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

main.cpp

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

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.

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Programmation Orientée Objet en C++

Programmation Orientée Objet en C++

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 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 publicBase Class protectedBase 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

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

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

main.cpp

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

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.

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
some-alt