IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

M�thodes virtuelle et impl�mentation


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par d�faut M�thodes virtuelle et impl�mentation
    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?

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Tu ne peux pas proc�der ainsi. Ici tu as besoin du type r�el de deux �l�ments polymorphiques (les deux op�randes de la comparaison) ; or l'appel � une fonction vrituelle (ici ton op�rateur >) ne permet d'acc�der qu'au type r�el du premier (via la liaison dynamique).

    Dirige-toi plut�t vers des techniques de double-dispatching (-> Google).

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par d�faut
    oki, je vais voir, merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 13
    Dernier message: 10/01/2013, 15h19
  2. Impl�mentation des m�thodes virtuelles en c++
    Par nosferatu dans le forum Langage
    R�ponses: 3
    Dernier message: 24/03/2011, 14h37
  3. R�ponses: 17
    Dernier message: 29/07/2009, 17h12
  4. R�ponses: 14
    Dernier message: 21/11/2008, 16h29
  5. M�thode virtuelle et impl�mentation
    Par sylvain.cool dans le forum C++
    R�ponses: 5
    Dernier message: 19/06/2008, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo