compilation multi fichiers
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 :
Code:
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();
} |
g++ -c competence.cpp me donne ceci:
Code:
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 |
tandis que si j'ajoute "class un_de;" et "class personnage;" au début du fichier "competence.cpp":
Code:
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 |
dois-je redéfinir mes classes et enumérations dans competence.cpp?
ou quelqu'un a une idée?
je vous remercie