Bonjour,
J'ai un problème quand un fichier X fait un include de Y et quand Y fait un include de X.
Voici un exemple pour mieux illustrer le problème :
test.cpp :
test.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "test.h" int main() { test maClasse; return 0; }
test2.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 #ifndef aa #define aa #include "test2.h" class test { public: test(void) { test2 var; var.fct(); } }; #endif
test2.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 #ifndef bb #define bb #include "test.h" class test2 { public: friend class test; private: void fct(void); }; #endif
A la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "test2.h"
$ g++ -c test.cpp
$ g++ -c test2.cpp
test.h: In constructor 'test::test()':
test.h:11: error: 'test2' was not declared in this scope
test.h:11: error: expected `;' before 'var'
test.h:12: error: 'var' was not declared in this scope
Comment faire pour ne plus avoir ce genre d'erreur ?
Merci...
Partager