Les 4 types de polymorphismes existants
Bonjour,
J'ai étudié les différents types de polymorphisme grâce à la FAQ C++.
Je souhaiterais avoir votre confirmation sur ma compréhension du sujet et vous poser quelques questions supplémentaires. :mrgreen:
Si je dis des bêtises, n'hésitez surtout pas à me le signaler :ccool:
Il existe 4 types de polymorphismes.
Ad-hoc :
Universel :
Polymorphisme de coercition (conversion implicite des variables) :
Code:
1 2 3
| int valInt = 2;
double valDouble = 2.2;
double resultat = valInt + valDouble; // Conversion implicite de valInt en double. |
Polymorphisme de surcharge (surcharge des fonctions/méthodes) :
Code:
1 2 3
| void maFonction(int arg);
int maFonction(double arg);
char maFonction(char arg, char arg2); |
Polymorphisme paramétrique :
"utilisation des techniques génériques pour offrir un même service pour tout un ensemble de types"
Utilisation de template et flux de sortie ? :aie:
Polymorphisme d'inclusion (héritage des méthodes) :
Code:
1 2 3 4 5 6 7 8
| class Mere{
public:
void methodeMere(); // La méthode sera héritée dans la classe Fille
};
class Fille : public Mere{
}; |
Mes questions :
- Je n'ai pas très bien compris le polymorphisme paramétrique, pouvez-vous m'en dire un petit peu plus sur ce type de polymorphisme ?
- A quel type de polymorphisme appartient le code suivant ? Par élimination je me dis qu'il s'agit du polymorphisme d'inclusion mais pourquoi ?
Code:
1 2
| ClasseFille f;
ClasseMere &obj = f; |
- Aussi il y a une autre chose que je ne comprend pas, pourquoi "le polymorphisme d'inclusion s'appuie sur l'héritage public" ? Pourquoi public et pas protected par exemple ?
Source ici.
Merci pour vos lumières :ccool: