Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
polymorphisme_et_pointeurs [2015/02/12 22:25] gbdivers |
polymorphisme_et_pointeurs [2018/07/20 23:40] (Version actuelle) winjerome Ajout des liens vers les chapitres précédent/suivant |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ | + | ^ [[heritage|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[fonction_virtuel|Chapitre suivant]] ^ |
pas bien de ne pas parler de destructeur virtuel plus tot ? | pas bien de ne pas parler de destructeur virtuel plus tot ? | ||
Ligne 8: | Ligne 8: | ||
===== Polymorphisme d'héritage ===== | ===== Polymorphisme d'héritage ===== | ||
- | On a vu que l'héritage publique est une relation EST-UN. Si la classe A dérive de la classe B, alors A EST-UN B. Mais A est également un A. Selon le contexte, on va donc pouvoir manipuler un objet de type A comme si c'était un objet de type A (normal), mais également comme si c'était un objet de type B. C'est cette capacité d'un objet a avoir plusieurs types que l'on appelle le polymorphisme d'héritage. | + | On a vu que l'héritage public est une relation EST-UN. Si la classe A dérive de la classe B, alors A EST-UN B. Mais A est également un A. Selon le contexte, on va donc pouvoir manipuler un objet de type A comme si c'était un objet de type A (normal), mais également comme si c'était un objet de type B. C'est cette capacité d'un objet a avoir plusieurs types que l'on appelle le polymorphisme d'héritage. |
Dans la sémantique de valeur, nous avons vu qu'il était possible de convertir une valeur d'un type donné dans un autre type. | Dans la sémantique de valeur, nous avons vu qu'il était possible de convertir une valeur d'un type donné dans un autre type. | ||
Ligne 54: | Ligne 54: | ||
- | : possible de voir selon le contexte une classe ou son parent. Ce notion de voir une même chose différemment selon le contexte est appelé "polymorphisme". Ici, plus précisément, polymorphisme d'héritage. | + | : possible de voir selon le contexte une classe ou son parent. Cette notion de voir une même chose différemment selon le contexte est appelé "polymorphisme". Ici, plus précisément, polymorphisme d'héritage. |
<note info>Pour rappel, déjà vu d'autres formes de polymorphisme : | <note info>Pour rappel, déjà vu d'autres formes de polymorphisme : | ||
Ligne 62: | Ligne 62: | ||
</note> | </note> | ||
- | Pour activer le polymorphisme, besoin que la classe soit passé par référence ou pointeur. | + | Pour activer le polymorphisme, besoin que la classe soit passée par référence ou pointeur. |
<code cpp> | <code cpp> | ||
Ligne 85: | Ligne 85: | ||
- | ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ | + | ^ [[heritage|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[fonction_virtuel|Chapitre suivant]] ^ |
{{tag> Cours C++}} | {{tag> Cours C++}} |