Utilisation de class définie dans des fichiers séparés
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
Code:
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 exemple.cpp
Code:
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()
{
} |
fichier main.cpp
Code:
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;
} |
génère les erreurs suivantes:
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