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 :

multiple definition of function


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    116
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 116
    Par d�faut multiple definition of function
    Voila j'ai un petit probleme :
    j'ai mon .h ou sont d�finit mes fonctions comme suit :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    #include <vector>
    #include <map>
    #include "class_base.h"
    #ifndef _CLASS_ATTRIBUT_H
    #define _CLASS_ATTRIBUT_H
    class ATTRIBUT{
     
    private :
        // Nom de la colonne attribut
        string nom;
        // Valeur que l'on mettra par défaut si  on insere une donnée vide
    	BASE * valeur_defaut;
    	// Défini le type de donnée que l'ont va stocker
    	string type;
    	// Défini si la colonne n'admet que des données uniques.
    	bool unique;
    	// Défini si la colonne n'admet que des données non nulle.
    	bool not_null;
    	// Défini si on utilise un index de recherche.
    	bool index;
    	// Notre index de recherche
    	map<string,vector<int> > tab_index;
    	// Notre tableau de valeurs
        vector<BASE *> valeurs;
     
     
    public :
     
        // Constructructeurs
    	ATTRIBUT(const ATTRIBUT &);
    	ATTRIBUT(string,string,bool,bool,bool,BASE *);
     
        //  Accesseurs
        void Afficher();
        void Afficher_Valeur(int);
     
        void Set_Nom(string);
    	string Get_Nom();
     
    	void Set_Type(string);
    	string Get_Type();
     
    	void Set_Defaut(BASE *);
    	BASE * Get_Defaut();
     
    	void Set_Unique(bool);
    	bool Get_Unique();
     
     
        void Set_Index(bool);
    	bool Get_Index();
     
    	void Set_Not_null(bool);
    	bool Get_Not_null();
     
     
        void Suppr(int);
        void Ajout(BASE *);
        void Ajout();
    	void Modif(int i,BASE *);
    	vector<int> Egal(BASE *);
    	vector<int> Superieur(BASE *);
    	vector<int> Inferieur(BASE *);
    	vector<int> Different(BASE *);
    string Get_Valeur(int);
     
        void Charger_Att(string)
        {// amuse toi avec les fichiers;
        }
        void Ecrire_Att(){// amuse toi avec les fichiers;
        }
        ~ATTRIBUT();
    };
     
     
     
    #endif
    et mon .cpp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    #include "class_attribut.h"
        void ATTRIBUT::Set_Nom(string sNom){nom=sNom;}
    	string ATTRIBUT::Get_Nom(){return  nom;}
     
     
    	string ATTRIBUT::Get_Valeur(int ligne){}
    par exemple et donc il me sort multiple definition of Set_Nom(string) et pour toutes les autres fonctions je ne comprends pas

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    73
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 73
    Par d�faut
    salut j'avait le meme genre d'erreur sous visual studio et sa venait de mes include. Voila j'�sp�re que cela pourra t'aider

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    69
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par d�faut
    Je vais peut etre dire une betise mais les #ifndef et #define ne devraient pas etre plac�s avant les #include ??? Je sais pas si ca joue mais je n'avait jamais vu cet ordre la avant

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par d�faut
    que ce passe t il si tu encapsule le tout sous un namespace toto { ... }; ?

  5. #5
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    116
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 116
    Par d�faut
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Linking console executable: E:\PROJET FINAL 2007-2\console.exe
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x100): multiple definition of `ATTRIBUT::ATTRIBUT(ATTRIBUT const&)'
    .objs\main.o:main.cpp:(.text+0x100): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x1e20): multiple definition of `ATTRIBUT::ATTRIBUT(ATTRIBUT const&)'
    .objs\main.o:main.cpp:(.text+0x1e20): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x3b40): multiple definition of `ATTRIBUT::ATTRIBUT(std::string, std::string, bool, bool, bool, BASE*)'
    .objs\main.o:main.cpp:(.text+0x3b40): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x4604): multiple definition of `ATTRIBUT::ATTRIBUT(std::string, std::string, bool, bool, bool, BASE*)'
    .objs\main.o:main.cpp:(.text+0x4604): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x50c8): multiple definition of `ATTRIBUT::Afficher()'
    .objs\main.o:main.cpp:(.text+0x50c8): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x5264): multiple definition of `ATTRIBUT::Afficher_Valeur(int)'
    .objs\main.o:main.cpp:(.text+0x5264): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x52a0): multiple definition of `ATTRIBUT::Get_Nom()'
    .objs\main.o:main.cpp:(.text+0x52a0): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x52c4): multiple definition of `ATTRIBUT::Get_Type()'
    .objs\main.o:main.cpp:(.text+0x52c4): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x52ea): multiple definition of `ATTRIBUT::Get_Defaut()'
    .objs\main.o:main.cpp:(.text+0x52ea): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x52f6): multiple definition of `ATTRIBUT::Get_Unique()'
    .objs\main.o:main.cpp:(.text+0x52f6): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x5302): multiple definition of `ATTRIBUT::Get_Index()'
    .objs\main.o:main.cpp:(.text+0x5302): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x530e): multiple definition of `ATTRIBUT::Get_Not_null()'
    .objs\main.o:main.cpp:(.text+0x530e): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x531a): multiple definition of `ATTRIBUT::Egal(BASE*)'
    .objs\main.o:main.cpp:(.text+0x531a): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x56fc): multiple definition of `ATTRIBUT::Different(BASE*)'
    .objs\main.o:main.cpp:(.text+0x56fc): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x5eaa): multiple definition of `ATTRIBUT::Superieur(BASE*)'
    .objs\main.o:main.cpp:(.text+0x5eaa): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x65e6): multiple definition of `ATTRIBUT::Inferieur(BASE*)'
    .objs\main.o:main.cpp:(.text+0x65e6): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x6d20): multiple definition of `ATTRIBUT::Get_Valeur(int)'
    .objs\main.o:main.cpp:(.text+0x6d20): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x6d5e): multiple definition of `ATTRIBUT::Set_Nom(std::string)'
    .objs\main.o:main.cpp:(.text+0x6d5e): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x6d78): multiple definition of `ATTRIBUT::Set_Type(std::string)'
    .objs\main.o:main.cpp:(.text+0x6d78): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x7216): multiple definition of `ATTRIBUT::Set_Defaut(BASE*)'
    .objs\main.o:main.cpp:(.text+0x7216): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x83e6): multiple definition of `ATTRIBUT::Ajout(BASE*)'
    .objs\main.o:main.cpp:(.text+0x83e6): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x8e9a): multiple definition of `ATTRIBUT::Ajout()'
    .objs\main.o:main.cpp:(.text+0x8e9a): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x98f6): multiple definition of `ATTRIBUT::Modif(int, BASE*)'
    .objs\main.o:main.cpp:(.text+0x98f6): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0xa3a8): multiple definition of `ATTRIBUT::Suppr(int)'
    .objs\main.o:main.cpp:(.text+0xa3a8): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0xa42a): multiple definition of `ATTRIBUT::~ATTRIBUT()'
    .objs\main.o:main.cpp:(.text+0xa42a): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0xa5f4): multiple definition of `ATTRIBUT::~ATTRIBUT()'
    .objs\main.o:main.cpp:(.text+0xa5f4): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x7e38): multiple definition of `ATTRIBUT::Set_Not_null(bool)'
    .objs\main.o:main.cpp:(.text+0x7e38): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x7cc0): multiple definition of `ATTRIBUT::Set_Index(bool)'
    .objs\main.o:main.cpp:(.text+0x7cc0): first defined here
    .objs\class_attribut.o:class_attribut.cpp:(.text+0x7bd8): multiple definition of `ATTRIBUT::Set_Unique(bool)'
    .objs\main.o:main.cpp:(.text+0x7bd8): first defined here

    voila ce quil me sort

    et mon main appelle un class_database.h qui contient des element attribut

  6. #6
    R�dacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par d�faut
    Il y a quoi dans ton main.cpp ?

    Je comprend pas pourquoi tu te retrouves avec un type string dans ton header. Il ne faut jamais utilis� de using namespace dans un include. Ca peut provoquer pas mal de probl�mes.

    http://c.developpez.com/faq/cpp/?pag...SPACE_no_using

Discussions similaires

  1. R�ponses: 8
    Dernier message: 19/09/2006, 15h42
  2. Multiple definition
    Par vdumont dans le forum C++
    R�ponses: 6
    Dernier message: 11/05/2006, 19h21
  3. multiple definition of operator<<...
    Par kleenex dans le forum C++
    R�ponses: 3
    Dernier message: 05/05/2006, 02h56
  4. [LG]Interfaces et multiples définitions
    Par fatt dans le forum Langage
    R�ponses: 2
    Dernier message: 15/04/2004, 22h41
  5. multiple definition
    Par scorbo dans le forum C
    R�ponses: 5
    Dernier message: 10/09/2003, 13h16

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