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 :

vtable ? quest-ce que c'est ?


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut vtable ? quest-ce que c'est ?
    savez-vous ce que veut dire : undefined reference to 'vtablke for Bus' ?

    merci

  2. #2
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    vtable, table virtuelle, c'est un mécanisme pour gérer les fonctions virtuelles.

    Tu as définit toutes les fonctions virtuelles de Bus ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    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.

    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){}
    et pour le bus il me met : undefined reference to `vtable for Bus'

    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

  4. #4
    Membre du Club Avatar de Seandest
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par crischprolch
    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.
    Halala pendant mes études à la fac j'ai eu deux fois ce sujet ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    dis-moi tu ne sais pas à koi est due l'erreur par hasard ?

  6. #6
    Membre du Club Avatar de Seandest
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Mayti4
    Tu as définit toutes les fonctions virtuelles de Bus ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    finalement, j'ai réécrit la classe bus en entiere et maintenant, ça marche donc merci

  8. #8
    Membre du Club Avatar de Seandest
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Ok ben à ton service.

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    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.

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

Discussions similaires

  1. [XSD] qu'est-ce que c'est ?
    Par crebassa gilles dans le forum Valider
    Réponses: 10
    Dernier message: 23/06/2004, 16h00
  2. Qu'est ce que c'est qu'un Trigger ?
    Par shingo dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/10/2003, 22h09
  3. Un daemon qu'est ce que c'est exactement ?
    Par CedricYhuel dans le forum Administration système
    Réponses: 5
    Dernier message: 01/08/2003, 11h56
  4. Qu'est ce que c'est : Le GateA20 ?
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 24/02/2003, 15h09
  5. Qu'est-ce que c'est que Nessus, ça fait quoi exactement ?
    Par PeterT dans le forum Développement
    Réponses: 3
    Dernier message: 24/07/2002, 11h23

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