Guiiil
Messages postés13Date d'inscriptionjeudi 10 janvier 2008StatutMembreDernière intervention10 juin 2009
-
28 mai 2009 à 16:43
Guiiil
Messages postés13Date d'inscriptionjeudi 10 janvier 2008StatutMembreDernière intervention10 juin 2009
-
28 mai 2009 à 17:42
Bonjour à tous,
Je suis en train de réaliser un p'tit jeu de rôle pour me faire la main (et une PTI au passage, les BTS IG comprendront), et je bloque sur un point :
voici le code :
Mon problème ? Le code ne se compile pas correctement, la même erreur apparait à des dizaines de reprises : undefined
reference to 'Personnage::~Personnage()', qui a très probablement un
rapport avec les virtuals... Y a t-il un moyen de contourner cela ?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 28 mai 2009 à 17:00
Je n'ai pas testé, mais il est d'usage, dès que tu as un héritage, de créer un destructeur dans toutes les classes et de le mettre en "virtual".
Peux-tu le faire et me dire si cela résoud ton problème ?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 28 mai 2009 à 17:12
Peux-tu, dans ce cas, essayer de poster un morceau indépendant de ton code, qui ne fonctionne pas, en essayant de simplifier au maximum le code qui pose problème ? En précisant bien entendu les erreurs que tu obtiens.
Guiiil
Messages postés13Date d'inscriptionjeudi 10 janvier 2008StatutMembreDernière intervention10 juin 2009 28 mai 2009 à 17:18
Le problème, c'est que je ne sais pas du tout ce qui ne fonctionne pas... Que ce soit Visual Studio, ou bien Code::Blocks, tous deux m'annoncent le même problème :
undefined reference to 'Personnage::~Personnage()'
à plusieurs reprise sans savoir précisément d'où vient le problème (sauf en ce qui
concerne Code::Blocks, qui précise que le problème vient du constructeur de magicien...).
Vous n’avez pas trouvé la réponse que vous recherchez ?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 28 mai 2009 à 17:27
Sans code, je vais avoir du mal à t'aider...
Quelques pistes:
- Créer des destructeurs dans chaques classes, en "virtual"
- Vérifier qu'un destructeur indiqué dans un header (.h ou .hh), soit bien implémenté dans le fichier de code associé (.cpp ou .cc).
- Vérifier que les inclusions soient correctes.
Guiiil
Messages postés13Date d'inscriptionjeudi 10 janvier 2008StatutMembreDernière intervention10 juin 2009 28 mai 2009 à 17:42
J'ai trouvé le problème ^^. Merci pour m'avoir indiqué la voie à suivre ! En fait, j'avais mis par mégarde le destructeur de personnage en commentaire.
C'est vraiment triste de perdre presque une journée pour une erreur aussi bête... Merci encore !