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
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 #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
Et ceci est le message d'erreur
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
La classe duree fonctionne bien toute seule.
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
D'avance merci
Partager