Undefined reference to `vatable for RenduTroisD` - C++ - Programmation
Marsh Posté le 13-07-2011 à 14:06:44
Personnellement, je n'ai jamais rencontré ce type d'erreur, c'est peut-être spécifique à Qt ? Tu as essayé de relancer une passe de "qmake" ?
Ton destructeur dans la classe TroisDWidget devrait être déclaré "virtual", puisque tu dérives cette classe.
Hormis ces deux remarques, je ne vois pas ce qui cloche...
Marsh Posté le 13-07-2011 à 14:14:54
Et puis au passage, rajoute un destructeur dans ta classe RenduTroisD, même s'il ne fait rien de spécial.
Marsh Posté le 13-07-2011 à 17:11:07
Bonjour et merci de m'avoir répondu.
J'ai ajouté à la classe mère (TroisDWidget.h) :
Code :
|
et à TroisDWidget.cpp :
Code :
|
Cela ne change en rien mon problème malheureusement. Concernant également la réponse sur qmake, j'ai bien validé, exécuté, relancé le qmake, cela ne change rien non plus....
J'ai redémarré mon ordinateur a cause des mise à jour Windows... et paff ça marche....
En tout cas ça semble marcher...
Avez vous une idée de pourquoi ça marché pas?
Marsh Posté le 13-07-2011 à 17:11:07
Bonjour et merci de m'avoir répondu.
J'ai ajouté à la classe mère (TroisDWidget.h) :
Code :
|
et à TroisDWidget.cpp :
Code :
|
Cela ne change en rien mon problème malheureusement. Concernant également la réponse sur qmake, j'ai bien validé, exécuté, relancé le qmake, cela ne change rien non plus....
J'ai redémarré mon ordinateur a cause des mise à jour Windows... et paff ça marche....
En tout cas ça semble marcher...
Avez vous une idée de pourquoi ça marché pas?
Marsh Posté le 13-07-2011 à 22:39:46
LaSoeur a écrit : Bonjour et merci de m'avoir répondu.
|
Le problème n'est pas réglé. Ton programme doit écrire à un endroit qui ne contient rien d'important, donc il ne plante pas. Si tu reboote, il pourra très bien replanter.
Mais je suis toujours d'avis d'attendre l'avis du mètre Jole F
cracoucoin
Marsh Posté le 16-07-2011 à 11:45:43
LaSoeur a écrit : |
Les voies de l'informatique sont impénétrables, MaSoeur...
cracoucoin a écrit : |
Jusqu'ici, le programme ne passait pas la phase d'édition des liens... Ce n'est donc pas un problème d'exécution !
Marsh Posté le 16-07-2011 à 18:10:38
Bonjour,
Ce genre de problème dépasse de loin mes compétences mais j'ai trouvé ce lien qui semble intéressant: http://www.daniweb.com/software-de [...] ads/114299
Marsh Posté le 16-07-2011 à 18:42:12
virtual ~TroisDWidget() {}
deja me parait mieux ... si tu ne fait que declarais et pas definir
Marsh Posté le 13-07-2011 à 13:36:03
Bonjour à tous et toutes,
Voila j'ai un problème en C++, je viens de commencer avec ce langage et ça fait 2 jours que je n'arrive plus a avancer. voila la structure de mon "projet" (en très simplifié) :
TroisDWidget.h - La classe mère
TroisDWidget.cpp - Implémentation
RenduTroisD.h - Classe fille
RenduTroisD.cpp - Implémentation
Comme le dit le titre, l'erreur que je récupère est : "Undefined reference to `vatable for RenduTroisD`". Qui me redirige vers la ligne du constructeur : RenduTroisD::RenduTroisD(QWidget *parent) : TroisDWidget(60, parent, "Rendu 3D" ){}
J'ai pu lire et apprendre que cela voulait dire qu'il y a un problème de link au niveau de la table qui s'occupe des fonctions virtuelles. De plus, la plupart des gens sur internet qui ont eu se problème parlent de constructeurs ou destructeurs non valides. J'ai beau ajouter des constructeurs ou destructeurs partout, cela ne change pas grand chose à mon problème.
Quelqu'un pourrait m'aider ? Je ne sais vraiment plus quoi faire.
Merci infiniment.
Votre Soeur