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 :

H�ritage et classes abstraites


Sujet :

C++

  1. #1
    Membre confirm� Avatar de Mic75
    Homme Profil pro
    D�veloppeur Frontend
    Inscrit en
    Janvier 2006
    Messages
    143
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Frontend
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 143
    Par d�faut H�ritage et classes abstraites
    Bonjour � tous,

    Je bloque sur un TP qui porte sur l'h�ritage et les classes virtuelles.
    J'ai une classe personne, qui est une classe virtuelle pure.
    Deux classes, �tudiant et enseignant, qui h�ritent de mani�re public de personne.
    Enfin, une classe bddPersonne qui h�rite de list<*personne> de mani�re priv�e (list �tant le TDA de la STL).
    bddPersonne est donc en quelque sorte une liste optimis�e pour la gestion des personnes.
    Pour faire mon test, voici ce que contient pour l'instant le main.cpp du projet :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <iostream>
    #include "personne.hpp"
    #include "etudiant.hpp"
    #include "enseignant.hpp"
    #include "bddPersonne.hpp"
     
    int main()
    {
    	bddPersonne liste1 ;
    	etudiant *moi = new etudiant("MACHIN", "Bidule", "GI", "I2RV") ;
     
    	liste1.ajoutPersonne(moi) ;
    }
    J'obtiens l'erreur suivante � la compilation (un probl�me de reference non d�finie dans vTable) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Switching to target: default
    Linking console executable: E:\Cours\UTBM\LO43\TP3\Inheritance.exe
    .objs\main.o: In function `ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP8personneEEC2ERKS5_':
    C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/new:(.text$_ZN8etudiantC1ESsSsSsSs[etudiant::etudiant(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x5a): undefined reference to `vtable for etudiant'
    C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/new:(.text$_ZN8etudiantC1ESsSsSsSs[etudiant::etudiant(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0xde): undefined reference to `personne::~personne()'
    C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/new:(.text$_ZN8personneC2ERKSsS1_[personne::personne(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x3a): undefined reference to `vtable for personne'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 1 seconds)
    0 errors, 0 warnings
    Quelqu'un a-t-il une id�e du probl�me ? Merci d'avance .

    Mathieu

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    C'est comme le bon formage: c'est marqu� dessus

    Visiblement, tu a d�clar� un destructeur pour ta classe Personne, mais tu ne l'a pas impl�ment�... Du coup... le compilateur n'en cr�e pas (il a trouv� la d�claration)... et l'�diteur de lien n'est pas content
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Membre confirm� Avatar de Mic75
    Homme Profil pro
    D�veloppeur Frontend
    Inscrit en
    Janvier 2006
    Messages
    143
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Frontend
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 143
    Par d�faut
    Merci beaucoup

    J'ai simplement rajout� {} apr�s la d�claration et tout est rentr� dans l'ordre.
    C'est le message qui m'a un peu d�rout�, vTable ne me parlant pas trop.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. H�ritage de classes abstraites
    Par gladio62 dans le forum Windows Presentation Foundation
    R�ponses: 6
    Dernier message: 11/05/2009, 14h27
  2. [DC] H�ritage et classes abstraites
    Par leminipouce dans le forum Diagrammes de Classes
    R�ponses: 7
    Dernier message: 08/01/2008, 16h14
  3. pb h�ritage sur classe abstraite et iterator
    Par black-falco dans le forum C++
    R�ponses: 21
    Dernier message: 05/01/2008, 16h38
  4. Probl�me h�ritage et classes abstraites
    Par sebzinzin dans le forum Langage
    R�ponses: 4
    Dernier message: 03/06/2007, 18h24
  5. h�ritage et classes abstraites
    Par reloadead dans le forum Langage
    R�ponses: 5
    Dernier message: 31/01/2007, 10h08

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