Bonjour,
je fais un exo ou je dois declare plusieures classes qui doivent travailler ensemble. Mais quand je veux integrer dans la deuxieme la decl d'un objet de la premiere le compilateur me donne une erreur de redefinition de class.

Est-ce que quelqu'un peut me dire ou est la faute

Ci-joint mes deux classes et le mes. d'erreur
Classe 1
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
 
#include<iostream>
using namespace std;
class duree{
private:
/////////////////////////////
//Decl. Variables de class
//////////////////////////////       
        int nm;
        int ns;
 
public:
/////////////////////////////
//Decl. Constructeur/Destructeur
//////////////////////////////
 
//Constructeur par defaut
               duree(void);
 
// IC = (int, int) Constructeur par initialisation
               duree(int , int);               
 
//Destructeur
               ~duree(void);
 
/////////////////////////////
//Decl. Surcharge des Operateurs
//////////////////////////////      
 
//surcharge de l'operateur >>cin , Saisie pour objet duree
friend istream& operator >> (istream&, duree& D);
 
//surcharge de l'operateur <<cout, Affichage pour objet duree
friend ostream& operator << (ostream&, const duree& D);
 
      };             // Fin de class duree
Classe 2
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
 
#include<iostream>
using namespace std;
#include "duree.h"
 
const int maxi = 30;         //Nb de char max
 
class morceau{
private:
/////////////////////////////
//Decl. Variables de class
//////////////////////////////       
        char* t;
        duree d;   
 
public:      
/////////////////////////////
//Decl. Constructeur/Destructeur
//////////////////////////////
 
//Constructeur par defaut
               morceau(void);
 
// IC = (char* ti, duree du) Constructeur par initialisation
               morceau(char* ti, duree du);               
 
//Destructeur
               ~morceau(void);      
 
/////////////////////////////
//Decl. Surcharge des Operateurs
//////////////////////////////      
 
//surcharge de l'operateur >>cin, Saisie pour objet morceau 
friend istream& operator >> (istream&, morceau& M);
 
//surcharge de l'operateur <<cout, Affichage pour objet morceau
friend ostream& operator << (ostream&, morceau& );      
 
 
      };       // Fin de decl de classe morceau
Et ceci est le message d'erreur

Compilateur: Default compiler
Building Makefile: "C:\Dev-Cpp\Devoir_3\Makefile.win"
Exécution de make...
make.exe -f "C:\Dev-Cpp\Devoir_3\Makefile.win" all
g++.exe -c testDev_3.1.cpp -o testDev_3.1.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"

In file included from morceau.h:8,
from testDev_3.1.cpp:11:
duree.h:9: error: redefinition of `class duree'

duree.h:9: error: previous definition of `class duree'

make.exe: *** [testDev_3.1.o] Error 1

Exécution terminée
La classe duree fonctionne bien toute seule.

D'avance merci