Polymorphisme - Arguments d'une fonction
Bonjour
J'aurais une question concernant le polymorphisme et l'appel d'une fonction.
Considérons une classe Shape et une sous-classe Circle et les deux fonctions surchargées suivantes :
Code:
1 2 3
|
void fonction(Shape* shape);
void fonction(Circle* circle); |
Je voudrais savoir, en appelant la fonction ci-dessus avec comme argument un pointeur vers un objet dont le type à l'exécution est Circle, laquelle des deux versions de la fonction sera apellée ?
Par exemple l'appel suivant :
Code:
1 2 3
|
Circle* circle = new Circle();
fonction(circle); |
En effet les deux versions pourraient etre apellées puisque qu'un objet de type Circle est aussi du type Shape.
Merci d'avance de votre réponse.