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 :
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;
}
test.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.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
#ifndef bb
#define bb
 
#include "test.h"
 
class test2
{
	public:
		friend class test;
 
	private:
		void fct(void);
};
 
#endif
test2.cpp
A la compilation :
$ 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...