Salut à toutes la communauté.
J'utilise DevCPP, avec je crois le compilateur mingw. Le problème c'est que quand je défini mes classes dans des fichiers autre que celui ou se trouve la fonction main, le compilateur m'affiche des erreurs à la compilation que je ne comprend pas.
Par exemple le programme suivant (ne cherchez pas son utilité, son but est juste d'illustrer mon propos):
fichier exemple.h
fichier exemple.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 #ifndef EXEMPLE_H #define EXEMPLE_H #include <iostream.h> class personne { private: char* nom ; public: personne(); personne(char* n); char* GetNom(); ~personne(); }; #endif
fichier main.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 #include "exemple.h" personne::personne() { nom = ""; } personne::personne(char* n) { nom=n; } char* personne::GetNom() { return nom; } personne::~personne() { }
génère les erreurs suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "exemple.cpp" int main(int argc, char *argv[]) { personne *Fabrice = new personne("DUPONT"); cout<<"\n"<<Fabrice->GetNom()<<"\n"; system("pause"); return 0; }
multiple definition of `personne::personne()'
first defined here
multiple definition of `personne::personne()'
first defined here
multiple definition of `personne::personne(char*)'
first defined here
multiple definition of `personne::personne(char*)'
first defined here
multiple definition of `personne::GetNom()'
first defined here
multiple definition of `personne::~personne()'
first defined here
multiple definition of `personne::~personne()'
first defined here
Merci beaucoup pour l'aide que vous pourrez m'apporter
Partager