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 :

[C++] Pb `vtable for ...`


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 46
    Par défaut [C++] Pb `vtable for ...`
    Bonjour,
    Voilà je me suis mis au developpement C++ et je me suis heurté à un petit prob au niveau des fonctions virtuelles avec le code ci-après;
    à la compilation DevCpp me renvoi :
    [linker error] undefined reference to `vtable for Personnel`

    c'est la fonction virtuelle qui me met tt ce bor$$$ mais je suis obligé, j'ai d'autres classes qui heritent derriere, c'est un exo que je fais sur le polymorphisme.
    voilà pour le fichier header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #ifndef _PERSONNEL
    #define _PERSONNEL
     
    class Personnel
    {
    	protected :
    		char nom[256];
    		unsigned int tel;
    		unsigned int bureau;
    	public :
    		virtual double calculSalaire();
    		void Afficher(void);
    		//-----------------------------
    		Personnel(char* nom, unsigned int bureau, unsigned int tel);
    		Personnel();
    		//.............................
    		~Personnel();
    };
    #endif
    et pour le fichier .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #include <stdio.h>
    #include <iostream>
     
    using namespace std;
    #include "Personnel.h"
     
     
    void Personnel::Afficher(void)
    {
    	cout<<nom<<" :"<<endl<<"   Bureau n°"<<bureau<<endl<<"   Tel :"<<tel<<endl;
    }
     
    Personnel::Personnel()
    {
    	cout<<"Erreur de création de la classe personnel"<<endl;
    }
     
    //**************************************
    Personnel::Personnel(char* nom, unsigned int bureau, unsigned int tel)
    {
    	strcpy(this->nom,nom);
    	this->bureau = bureau;
    	this->tel = tel;
    	cout <<"********* Construction d'un Personnel *************"<<endl;
    	//Afficher();
    }
    Personnel::~Personnel()
    {
    	cout <<"********** Destuction d'un Personnel **************"<<endl;
    }
    Merci d'avance pour vos réponses

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 46
    Par défaut RE: Mon post loool
    Bon ben je sais pas pourquoi mais ça marche maintenant
    Par contre si quelqu'un pourrait m'en expliquer la causes je lui en serai très reconnaissant

    Merci

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut

    il est où le corps de ta fonction virtuelle ? si elle est virtuelle pure alors il faut = 0

    stdio.h cstdio

    le destructeur DOIT être virtuel si ta classe est destinée à être utilisée polymorphiquement.

    char* string, c'est plus simple et moins de risque d'erreur

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 46
    Par défaut
    ta raison, ça devait etre ça, je l'avais pas définie..
    Mais bon jpensais pas que ça lui poserai problème.

    Je te remercie

Discussions similaires

  1. Réponses: 13
    Dernier message: 17/05/2010, 21h28
  2. référence indéfinie vers « vtable for FenPrincipale
    Par yLaplace dans le forum Débuter
    Réponses: 5
    Dernier message: 01/03/2010, 13h49
  3. Réponses: 1
    Dernier message: 19/07/2009, 22h37
  4. undefined reference to `vtable for Graphique'
    Par lilly91 dans le forum Débuter
    Réponses: 11
    Dernier message: 23/06/2009, 17h41
  5. undefined reference to `vtable for
    Par zalalus dans le forum Qt
    Réponses: 13
    Dernier message: 27/05/2009, 15h27

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