Je me posais une question concernant l'héritage et la substitution : Si on substitue un objet Fille à un pointeur ou une référence vers un objet Mère, et qu'on appelle une fonction virtuelle de la mère, est-ce que la fonction appelée correspondra à la définition de la mère ou à celle de la fille ?
Voilà un bout de code qui montre ce que je voudrais faire :
#include "iostream"
class Mere
{
public :
virtual void A()
{
cout << "Fonction de la mère";
}
};
class Fille : public Mere
{
public :
virtual void A()
{
cout << "Fonction de la fille";
}
};
int main()
{
Mere *mere = NULL;
Fille fille;
*mere = fille;
mere->A();// -> Quelle fonction est appelée ?
return 0;
}
PS: arrétez de prendre le choux avec NULL et 0. Tous les gurus ne sont pas d'accord sur le sujet, et le prochain standard introduira (enfin -- là c'est mon avis) "nilptr" pour faire plaisir à tout le monde.
Problème Héritage avec fonctions virtuelles et substitution
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
qui lui fera une violation d'accès mémoire !