« Programmation C++/Polymorphisme » : différence entre les versions

Contenu supprimé Contenu ajouté
Création
Tavernierbot (discussion | contributions)
m Bot: Retouches cosmétiques
Ligne 1 :
{{Programmation C++}}
== Polymorphisme ==
 
<!-- Note d'édition : ne pas confondre avec la surcharge, où les fonctions peuvent avoir un même nom, mais différents types de paramètres -->
Ligne 6 :
Le polymorphisme est une fonctionnalité de l'héritage : la capacité d'appeler une méthode en fonction du type réel d'un objet (sa classe).
 
== Exemple ==
 
Soit une classe A implémentée de la manière suivante :
Ligne 24 :
}
 
== Problème ==
 
Si on a un tableau de pointeur sur des objets B, la méthode <tt>compare</tt> appelée par la fonction de tri est celle de la classe A, car la fonction a pour paramètre un tableau de pointeur sur des objets A. Ce comportement n'est pas polymorphique.
 
== Solution ==
 
Pour que la méthode appelée soit celle de la classe B, il faut qu'elle soit déclarée virtuelle (<tt>virtual</tt>) dans la classe de base :