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 :

probleme avec fonctions virtuelles


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 107
    Par défaut probleme avec fonctions virtuelles
    Bonjour,

    Lorsque je compile mon prog avec g++ -g -Wall je n'ai pas de Warning mais lorsque je le compile avec icc j'ai des warnings du type:

    warning #1125: overloaded function "A::id" is hidden by "B::id" -- virtual function override intended?

    OU le code ressemble a:
    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
    18
    19
    20
     
    classe A{
    .
    .
    public:
    virtual unsigned int id(const string &str)
    {
    code
    }
    }
     
     
    class B : public A {
    .
    public:
    unsigned int id(Reaction *r)
    {
    code
    }
    }
    Je ne comprend pas tres bien le sens de ce warning et ne sais pas comment le resoudre.

    Si vous avez des explications a me donner.

    Merci beaucoup

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Ce comportement étant standard, j'imagine que c'est la raison pour laquelle tu n'as pas de warning avec g++.

    L'explication est que la déclaration d'une méthode dans une classe dérivée implique le masquage de celle de la classe mère portant le même nom. Le fait de déclarer une méthode id(Reaction*) masque donc A::id(), bien que la signature ne soit pas la même. Par conséquent, icc prend donc la précaution de te signaler d'éventuels problèmes d'accès à la fonction de la classe mère.
    D'ailleurs, la FAQ en parle.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 107
    Par défaut
    Merci pour l'explication

    Y a-t-il un moyen de regler ce probleme ou bien peut etre n'ai-je pas besoin de me soucier de ce warning?

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Jeane
    Y a-t-il un moyen de regler ce probleme ou bien peut etre n'ai-je pas besoin de me soucier de ce warning?
    La FAQ donne le moyen de reimporter la declaration, et alors tu ne devrais plus avoir le warning. Comme meme si pour le moment, la cause du warning ne te pose pas de problemes, il n'est pas dit qu'ils ne vont pas arriver lors de l'evolution de ton programme. Donc le resultat est aussi plus propre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 107
    Par défaut
    Ok

    Merci beaucoup pour l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [debutant] probleme avec methode virtuelle pure
    Par Treuze dans le forum Débuter
    Réponses: 10
    Dernier message: 21/04/2006, 12h58
  2. C++ - Probleme avec fonction virtuelle
    Par vdumont dans le forum C++
    Réponses: 1
    Dernier message: 20/03/2006, 20h49
  3. probleme avec fonctions
    Par Burinho dans le forum C
    Réponses: 8
    Dernier message: 29/12/2005, 21h28
  4. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  5. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42

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