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 :

Undefined reference to class::Constructor()


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 63
    Points : 50
    Points
    50
    Par défaut Undefined reference to class::Constructor()
    Bonjour à tous.
    Bien qu'experimenté en C et en POO, je suis novice en C++ et j'ai un projet d'IHM à effectuer en C++, sous QtCreator.
    Je suis actuellement entrain de mettre en place la partie fonctionnelle du projet, mais je rencontre une erreur que je n'arrive pas à fixer depuis un moment.
    Il s'agit d'un problème d'héritage de constructeurs vraisemblablement.
    banquier.h :
    Code cpp : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    #ifndef BANQUIER_H
    #define BANQUIER_H
    #include "vente.h"
    #include <vector>
     
    class Banquier
    {
    private:
        unsigned int id;
        char * nom;
    public:
        Banquier();
        Banquier(unsigned int id, char*nom);
        unsigned int getId();
        char * getNom();
        void setId(unsigned int id);
        void setNom(char * nom);
    };
     
    class Employe : public Banquier
    {
    public:
        std::vector<vente>  ventes;
        Employe(unsigned int id, char*nom);
        std::vector<vente> * getVentes();
    };
     
    class Directeur : public Banquier
    {
    public:
        Directeur();
        Directeur(unsigned int id, char*nom);
    };
     
    class DirecteurGeneral : public Banquier
    {
    public:
        DirecteurGeneral(unsigned int id, char*nom);
    };
     
    #endif // BANQUIER_H

    banquier.cpp:
    Code cpp : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    #include <string.h>
    #include "banquier.h"
    #include "vente.h"
     
    // Banquier
    Banquier::Banquier(unsigned int id, char*nom)
    {
        this->id=id;
        strcpy(this->nom,nom);
    }
     
    unsigned int Banquier::getId(){
        return this->id;
    }
     
    char * Banquier::getNom(){
        return this->nom;
    }
    void Banquier::setId(unsigned int id){
        this->id=id;
    }
    void Banquier::setNom(char * nom){
        this->nom=nom;
    }
    //Employé
    Employe::Employe(unsigned int id, char * nom)
    {
        this->setId(id);
        this->setNom(nom);
    }
     
    std::vector<vente> * Employe::getVentes(){
        return &this->ventes;
    }
     
    // Directeur
    Directeur::Directeur(unsigned int id, char*nom)
    {
        this->setId(id);
        this->setNom(nom);
    }
     
     
    // Directeur général
    DirecteurGeneral::DirecteurGeneral(unsigned int id, char*nom)
    {
        this->setId(id);
        this->setNom(nom);
    }

    À la compilation, j'obtiens une erreur au niveau du constructeur de Employe, Directeur et DirecteurGenera, dans le fichier .cpp, me disant : "Undefined reference to Banquier::Banquier()".

    Je vous remercie par avance pour votre aide !

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Pour rappel / info : https://c.developpez.com/faq/?page=G...mbol-not-found

    Dans ton cas particulier, tu as dans ton hpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Banquier
    {
    public:
        Banquier();
        // ...
    };
    Et dans le cpp, on ne trouve pas l'implémentation de cette fonction.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 63
    Points : 50
    Points
    50
    Par défaut
    Merci !

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

Discussions similaires

  1. Undefined reference to une classe qui n'existe pas
    Par jetSett dans le forum Langage
    Réponses: 4
    Dernier message: 05/07/2013, 11h45
  2. Undefined reference avec les fonctions d'une class
    Par romnair dans le forum Débuter
    Réponses: 5
    Dernier message: 10/04/2012, 16h40
  3. Réponses: 6
    Dernier message: 08/01/2012, 09h05
  4. Err: undefined reference vtable for class
    Par diabl0 dans le forum C++
    Réponses: 10
    Dernier message: 30/10/2011, 13h47
  5. Réponses: 3
    Dernier message: 12/01/2006, 21h26

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