Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un petit problème de compilation à cause de l'héritage

Sujet résolu
    18 août 2007 à 15:42:18

    Salut à tous les Zéros!

    Je suis en train de faire un jeu d'aventure en 2D à la Mario, et j'ai fait une classe abstraite qui est la base des ennemis :

    1. class Ennemi
    2. {
    3. public:
    4.     Ennemi(SDL_Surface *sprite, int x, int y, Camera *cam, Carte *carte);
    5.     virtual ~Ennemi() = 0;
    6.     virtual void setClip() = 0;
    7.     virtual void bouge() = 0;
    8.     virtual void die() = 0;
    9.     void afficher(SDL_Surface *ecran);
    10.     SDL_Rect& getPosition() {return m_position;};
    11.     int getVie() {return m_vie;};
    12.     int getPdv() {return m_pdv;};
    13.     void pause();
    14.     void unPause();
    15. protected:
    16.     Timer anim;
    17.     Timer mouvement;
    18.     Timer death;
    19.     Camera *camera;
    20.     Carte *Map;
    21.     SDL_Surface *m_sprite;
    22.     SDL_Rect m_position;
    23.     int m_sens;
    24.     int m_stance;
    25.     int m_frame;
    26.     int m_frameMax;
    27.     int m_vie;
    28.     int m_pdv;
    29.     int m_vitesse;
    30.     int m_deplacement;
    31. };


    Et j'ai fait une classe Goomba qui dérive d'elle :

    1. class Goomba : public Ennemi
    2. {
    3.     public:
    4.         Goomba(SDL_Surface *sprite, int x, int y, Camera *cam, Carte *carte);
    5.         virtual ~Goomba(){};
    6.         void setClip();
    7.         void bouge();
    8.         void die();
    9.     private:
    10.         SDL_Rect m_clip[2][3][6];
    11. };


    J'ai inclus ce qu'il faut, et à la compilation je reçois cette erreur :

    Citation : Code::Blocks

    .objs\Ennemis\goomba.o:goomba.cpp:(.text+0xca): undefined reference to `Ennemi::~Ennemi()'
    .objs\Ennemis\goomba.o:goomba.cpp:(.text+0x1c4): undefined reference to `Ennemi::~Ennemi()'
    .objs\Ennemis\goomba.o:goomba.cpp:(.text$_ZN6GoombaD0Ev[Goomba::~Goomba()]+0x16): undefined reference to `Ennemi::~Ennemi()'
    .objs\Ennemis\goomba.o:goomba.cpp:(.text$_ZN6GoombaD1Ev[Goomba::~Goomba()]+0x16): undefined reference to `Ennemi::~Ennemi()'



    Merci de m'aider à résoudre ce problème.
    • Partager sur Facebook
    • Partager sur Twitter
      18 août 2007 à 15:59:21

      Même un destructeur virtuel pur doit avoir une implémentation.
      • Partager sur Facebook
      • Partager sur Twitter
      C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.

      Un petit problème de compilation à cause de l'héritage

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown