Bonjour,

J'ai une classe abstraite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
class Element
{
  public:
    virtual bool operator>(const Element &elt)=0;
};
avec donc une méthode virtuelle.

Mon problème est de savoir comment implémenter cette méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class Mot:Element
{
  private:
    string mot;
  public:
    string getMot();
    //Retourne le mot
    bool operator>(const Element &elt);
};
Ici j'aimerai faire une implémentation de l'opérateur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
bool Mot::operator>(const Element &elt)
{
return getMot()>elt.getMot();
}
Or Element ne possède pas l'opérateur >(qui est virtuel), seul la classe Mot la possède. Or si j'essaie d'implémenter comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
bool Mot::operator>(const Mot &elt)
{
return getMot()>elt.getMot();
}
Le compilo me dit bien sûr que l'opérateur > n'a pas été implémenté et que Mot est par conséquent une classe abstraite

Donc voilà, comment je fais?