Salut aux développeurs en C++,
j'ai un problème de multi-fichier.
j'ai un fichier qui utilise des classes et des types enumérations d'un autre fichier:
competence.cpp :
g++ -c competence.cpp me donne ceci:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 class competence{ private: un_de le_de; personnage *P_personnage; public: competence(); int lancer_de(); int accesseur_For(); int accesseur_Dex(); int accesseur_Con(); int accesseur_Int(); int accesseur_Sag(); int accesseur_Cha(); race accesseur_ra(); classe accesseur_cl(); virtual int accesseur_caract(); }; competence::competence():le_de(20){} int competence::lancer_de(){ return le_de.lance(); } int competence::accesseur_For(){ return P_personnage->accesseur_For(); } int competence::accesseur_Dex(){ return P_personnage->accesseur_Dex(); } int competence::accesseur_Con(){ return P_personnage->accesseur_Con(); } int competence::accesseur_Int(){ return P_personnage->accesseur_Int(); } int competence::accesseur_Sag(){ return P_personnage->accesseur_Sag(); } int competence::accesseur_Cha(){ return P_personnage->accesseur_Cha(); } race competence::accesseur_ra(){ return P_personnage->accesseur_ra(); } classe competence::accesseur_cl(){ return P_personnage->accesseur_cl(); }
tandis que si j'ajoute "class un_de;" et "class personnage;" au début du fichier "competence.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
23
24 competence.cpp:3: erreur: 'un_de' does not name a type competence.cpp:4: erreur: ISO C++ forbids declaration of 'personnage' with no type competence.cpp:4: erreur: expected ';' before '*' token competence.cpp:14: erreur: 'race' does not name a type competence.cpp:15: erreur: 'classe' does not name a type competence.cpp: In constructor 'competence::competence()': competence.cpp:19: erreur: class 'competence' does not have any field named 'le_de' competence.cpp: In member function 'int competence::lancer_de()': competence.cpp:22: erreur: 'le_de' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_For()': competence.cpp:26: erreur: 'P_personnage' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_Dex()': competence.cpp:30: erreur: 'P_personnage' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_Con()': competence.cpp:34: erreur: 'P_personnage' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_Int()': competence.cpp:38: erreur: 'P_personnage' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_Sag()': competence.cpp:42: erreur: 'P_personnage' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_Cha()': competence.cpp:46: erreur: 'P_personnage' was not declared in this scope competence.cpp: At global scope: competence.cpp:49: erreur: 'race' does not name a type competence.cpp:53: erreur: 'classe' does not name a type
dois-je redéfinir mes classes et enumérations dans competence.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
23
24
25
26
27
28
29
30 g++ -c competence.cpp me donne: competence.cpp:5: erreur: field 'le_de' has incomplete type competence.cpp:16: erreur: 'race' does not name a type competence.cpp:17: erreur: 'classe' does not name a type competence.cpp: In constructor 'competence::competence()': competence.cpp:21: erreur: class 'competence' does not have any field named 'le_de' competence.cpp: In member function 'int competence::lancer_de()': competence.cpp:24: erreur: 'le_de' was not declared in this scope competence.cpp: In member function 'int competence::accesseur_For()': competence.cpp:28: erreur: invalid use of incomplete type 'struct personnage' competence.cpp:2: erreur: forward declaration of 'struct personnage' competence.cpp: In member function 'int competence::accesseur_Dex()': competence.cpp:32: erreur: invalid use of incomplete type 'struct personnage' competence.cpp:2: erreur: forward declaration of 'struct personnage' competence.cpp: In member function 'int competence::accesseur_Con()': competence.cpp:36: erreur: invalid use of incomplete type 'struct personnage' competence.cpp:2: erreur: forward declaration of 'struct personnage' competence.cpp: In member function 'int competence::accesseur_Int()': competence.cpp:40: erreur: invalid use of incomplete type 'struct personnage' competence.cpp:2: erreur: forward declaration of 'struct personnage' competence.cpp: In member function 'int competence::accesseur_Sag()': competence.cpp:44: erreur: invalid use of incomplete type 'struct personnage' competence.cpp:2: erreur: forward declaration of 'struct personnage' competence.cpp: In member function 'int competence::accesseur_Cha()': competence.cpp:48: erreur: invalid use of incomplete type 'struct personnage' competence.cpp:2: erreur: forward declaration of 'struct personnage' competence.cpp: At global scope: competence.cpp:51: erreur: 'race' does not name a type competence.cpp:55: erreur: 'classe' does not name a type
ou quelqu'un a une idée?
je vous remercie
Partager