Bonjour,
J'ai une classe abstraite Element.h:
Une classe Mot qui hérite d'élément, Mot.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Element { public : virtual void affiche() {}; virtual int compare(Element*) {}; };
Mot.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Mot:public Element{ private: string info; int occurence; public: Mot(string M); void affiche(); int compare(Mot* M); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Mot::Mot(string M) { info = M; occurence = 1; } void Mot::affiche() { cout << "mot: " << info; } int Mot::compare(Mot* M) { if ... return res; }
Problème: j'arrive à faire un x->affiche() avec x pointeur sur un élément, par contre je ne peux pas faire de res = x->compare(y) avec y un pointeur sur élément aussi.
Le méthode compare ne s'éxécute pas (si je met un cout dans compare rien ne s'affiche par exemple), res prend une valeur absurde.
Je ne comprend pas trop pourquoi dans un cas ça marche et pas dans l'autre.
Merci d'avance pour votre aide.
Partager