Petite question c++

Résolu
chabacha109 Messages postés 326 Statut Membre -  
chabacha109 Messages postés 326 Statut Membre -
Bonjour,

msg supprimé

3 réponses

  1. chabacha109 Messages postés 326 Statut Membre 9
     
    merci :)
    0
  2. chabacha109 Messages postés 326 Statut Membre 9
     
    mes questions seront plus précise aujourd'hui:

    class A
    {
    public:
    void afficher();
    };

    void A::afficher()
    {
    cout<<"je suis le A";
    }

    class B:public A
    {
    public:
    void afficher();
    };

    void B::afficher()
    {
    cout<<"je suis le B";
    }

    void main()
    {
    A a;
    a.afficher();//il va afficher je suis a

    B b;
    b.afficher();//il va afficher je suis le b
    }
    //jusqu'à maintenant je suis d'accord avec le résultat,
    le a est une instance de A , le b est une instance de B donc le résultat est évident :)

    mais mon problème est la:

    class A
    {
    public:
    void xxx();
    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 il affiche je suis le A c'est normale il est une insance de A....

    B b;
    b.xxx();//ici mon probléme "je suis le A"
    }
    le b est déclaré comme une instance de la class B , et il déclanche la metode de A ????
    je sait qu'il manque le mot clé virtual dans la classe de base virtual void afficher()


    mais dans le premier version elle est sans "virtual" ,et marche bien :(

    j'espère que mon question est claire
    0
    1. chabacha109 Messages postés 326 Statut Membre 9
       
      j'ai passer les examen et tous va bien :)
      0