Probleme avec c++
Résolu/Fermé
chabacha109
Messages postés
268
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
14 mai 2012
-
Modifié par chabacha109 le 26/12/2010 à 17:54
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 - 26 déc. 2010 à 18:00
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 - 26 déc. 2010 à 18:00
1 réponse
Yoan
Messages postés
11795
Date d'inscription
mardi 1 février 2005
Statut
Modérateur
Dernière intervention
10 décembre 2023
2 327
26 déc. 2010 à 17:08
26 déc. 2010 à 17:08
Tu n'as pas fait de surchage pour la méthode xxx() et la classe B. Il n'y a pas de xxx() pour B.
Mais B hérite de A, donc y compris de sa méthode xxx(). Donc en appelant b.xxx(); c'est bel-et-bien la méthode définie dans la classe A que tu appelles.
Mais B hérite de A, donc y compris de sa méthode xxx(). Donc en appelant b.xxx(); c'est bel-et-bien la méthode définie dans la classe A que tu appelles.
Modifié par chabacha109 le 26/12/2010 à 18:02
bon
si je fait ca;
class A
{
public:
void xxx();
virtual void afficher();
};
void A::xxx()
{
afficher();
}
void A::afficher()
{
cout<<"je suis le A"<<endl;
}
class B :public A
{
public:
void afficher();
};
void B::afficher()
{
cout<<"je suis le B"<<endl;
}
void main()
{
A a;
a.xxx();//ici je suis le A
B b;
b.xxx();//ici je suis le B
}
//ici il je suis le A
//ici "je suis le B
qu'est-qu'il passe exactement si j'ajoute ce "virtual", c'est mon probléme