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 :

Polymorphisme, classe abstraite


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Points : 49
    Points
    49
    Par défaut Polymorphisme, classe abstraite
    Bonjour

    J'ai un soucis de link que je n'arrive pas à résoudre.
    En résumé avec trois calsse ca donne :
    Une classe virutelle pure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class A
    {
    class A();
    virtual ~class A();
    protected:
    virtual void func() = 0;
    }
    Une première fille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class B : public A
    {
    class B();
    virtual ~class B();
    protected:
    virtual void func();
    }
    Dans le cpp il y a une peu de code dans B::func();

    Une fille de la fille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class C : public B
    {
    class C();
    virtual ~class C();
    protected:
    virtual void func();
    }
    Dans le cpp il y a un peu de code dans C::func() qui appele B::Func()

    A la compilation sous VS S005 j'ai une erreur de link sur C::func().

    Cela m'arrangerai de ne pas passer B en classe abstraite.
    Comment puis-je résoudre ce problème ?
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Comme cela, je ne voie pas d'erreur maintenant, il faut regarder dans les fichier cpp.

    Tu es sûr que ta fonction s'appelle void C::func() dans ton .cpp (et pas void func(), c'est courant)

    Sinon, donne nous un peu plus de code et le message d'erreur complet de l'erreur de link.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Points : 49
    Points
    49
    Par défaut
    Merci j'ai trouvé ma réponse. C'était une autre classe qui avait le même nom de function (en gros ::func) qui avait une virtuelle non définie (func(){}).
    Comme c'est la première fois que j'utilise une fille d'une fille d'une mère abstraite j'avais des doutes. C'est l'erreur de link qui m'a mis sur la voie. Merci encore.

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

Discussions similaires

  1. Polymorphisme et interface#classes abstraites
    Par zalalus dans le forum Débuter
    Réponses: 6
    Dernier message: 23/02/2010, 14h58
  2. polymorphisme, pointeurs et classes abstraites
    Par legend666 dans le forum C++
    Réponses: 10
    Dernier message: 02/11/2005, 16h44
  3. [Debutant][Conception] Classes abstraites et interface.
    Par SirDarken dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2004, 00h02
  4. Classe abstraite / MVC
    Par caramel dans le forum MVC
    Réponses: 5
    Dernier message: 01/04/2003, 09h27
  5. pb constructeurs classes dérivant classe abstraite
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 10/02/2003, 19h02

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