Virtual et le polymorphisme
Bonsoir,
Je programme en JAVA depuis quelques temps et je me suis mis au C++ pour mon travail, et je but sur un petit soucis concernant le polymorphisme.
J'ai �crit un petit code que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #include <iostream>
using namespace std;
class Mere
{
public :
virtual void AfficheNom(void);
};
void Mere::AfficheNom(void)
{
cout << "Je suis la mere" << endl;
}
class Fille : public Mere
{
public:
void AfficheNom(void);
};
void Fille::AfficheNom(void)
{
cout << "Je suis la fille" << endl;
}
int main()
{
Mere tableauDeMere[3];
Mere mere1;
Mere mere2;
Fille fille;
tableauDeMere[0] = mere1;
tableauDeMere[1] = fille;
tableauDeMere[2] = mere2;
for ( int i = 0; i < 3; i++ )
tableauDeMere[i].AfficheNom();
return 0;
} |
Lors de l'ex�cution, j'obtiens 3 fois "Je suis la mere".
Je pensais que l'attribut virtual permettait justement d'appeler la fonction red�finie dans la classe fille dans ce genre de cas.
En JAVA, ce code donnerait le r�sultat suivant :
Je suis la mere
Je suis la fille
Je suis la mere
Y'a-t-il quelque chose que j'ai mal compris ?
Si oui, merci de m'�clairer :-)
Cdt,
Yann.