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 : 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 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
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 : 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;
}
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