Académique Documents
Professionnel Documents
Culture Documents
1
Plan du chapitre
Introduction
Héritage de type
Classes abstraites 2
16/10/2023 2
Introduction
Définitions:
C’est la possibilité pour un programmeur de traiter plusieurs formes d'une classe comme si
elles n'étaient qu'une.
Un mécanisme puissant d'abstraction qui protège les programmeurs des détails de
réalisation des classes dérivées (Programmation avancée en C++ - James O. Coplien).
A retenir:
Un objet polymorphe est un objet susceptible de prendre plusieurs formes pendant
l’exécution.
Le polymorphisme représente la capacité du système à choisir dynamiquement la méthode
qui correspond au type de l’objet en cours de manipulation.
La résolution dynamique des liens
B objetB;
Classe B
La manipulation de différentes instances d’une
hiérarchie commune est homogène bien que leurs
comportements sont distincts. D’où le concept de
Polymorphisme.
16/10/2023 4
Héritage de type
A a;
B b; // B est une classe derivee de A.
fontion( a ); // correct.
fontion( b ); // correct aussi.
16/10/2023 5
Résolution Statique des liens
objetA.afficher();
}
16/10/2023 6
Résolution Statique des liens
16/10/2023 7
Résolution Dynamique des liens
16/10/2023 8
Méthodes Virtuelles
En C++, pour que le compilateur considère qu’une méthode est virtuelle il faut la faire
précéder par le mot clé « virtual » lors de sa déclaration dans la classe la plus générale.
Toute redéfinition d’une méthode virtuelle dans une sous classe sera automatiquement
virtuelles.
Ce n’est pas obligatoire d’écrire le mot clé « virtual » aux niveaux des classes dérivées.
class A
{
virtual void afficher() const { cout << ’A’ << endl; }
};
16/10/2023 9
Méthodes Virtuelles
Utilité : Détruire un objet d’une classe fille qui est référencé par un pointeur de la classe
de mère.
16/10/2023 10
Méthodes Virtuelles
16/10/2023 12
Méthodes virtuelles pures
Une méthode est dite virtuelle pure, ou abstraite, si elle n’a pas de « corps ».
Les sous-classes qui héritent de la classe où elle est écrite doivent la redéfinir.
On connais la surface d’une cercle, un rectangle, un triangle mais on ne peut pas définir
la surface d’une forme géométrique en générale. la méthode surface () est une
méthode abstraite
16/10/2023 13
Classes abstraites
Toutes ses classes filles restent abstraites tant qu’elles ne définissent pas toutes les
méthodes virtuelles pures qu’elles héritent.
16/10/2023 14
Bibliographie & Netographie
16/10/2023 15
Merci pour votre attention !
16/10/2023 16