savez-vous ce que veut dire : undefined reference to 'vtablke for Bus' ?
merci
savez-vous ce que veut dire : undefined reference to 'vtablke for Bus' ?
merci
vtable, table virtuelle, c'est un mécanisme pour gérer les fonctions virtuelles.
Tu as définit toutes les fonctions virtuelles de Bus ?
en fait je fais un petit projet de gestion d'un ferry. Il transporte des objets de type vehicule (auto, bus). Les classes auto et bus implémentent la classe vehicule. la classe auto fonctionne bien alors que la classe bus ne marche pas ou plus précisement, c'est le constructeur qui ne fonctionne pas.
et pour le bus il me met : undefined reference to `vtable for Bus'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //constructeur de auto : Auto::Auto(int nb, bool ttt):Vehicule(2,nb),estTTerrain(ttt){} //constructeur de bus : Bus::Bus(int lg,int nb) : Vehicule(3,nb){}
Je travaille avec eclipse et voici les erreurs :
Building target: tp4
Invoking: GCC C++ Linker
g++ -otp4 ./Auto.o ./Bus.o ./client.o ./ferry.o ./vehicule.o
./Bus.o(.text+0x11a): In function `Bus::Bus(int, int)':
../Bus.cc:6: undefined reference to `vtable for Bus'
./Bus.o(.text+0x13e): In function `Bus::Bus(int, int)':
../Bus.cc:6: undefined reference to `vtable for Bus'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [tp4] Erreur 1
make: La cible « all » n'a pas pu être refabriquée à cause d'erreurs.
Build complete for project tp4
merci
Halala pendant mes études à la fac j'ai eu deux fois ce sujet ...Envoyé par crischprolch
dis-moi tu ne sais pas à koi est due l'erreur par hasard ?
finalement, j'ai réécrit la classe bus en entiere et maintenant, ça marche donc merci
Généralement ce message d'erreur survient lorsqu'il manque le corps de l'une des fonctions membres déclarées dans la classe.
D'après ce que j'ai pu lire, cela vient du fait que le compilo doit définir la vtable de la classe dans une unité de traduction (fichier .cpp), à savoir celle où est définie la première fonction non-inline de la classe. Donc si cette dernière est manquante, la vtable le sera aussi. A vérifier toutefois.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager