Hello,
Je viens à vous car j'ai un petit soucis avec C++. J'imagine qu'elle est plutôt triviale, mais je ne sais pas trop comment la résoudre, et mes recherches n'ont pas donné grand chose (peut-être ai-je donné les mauvais mots-clés au moteur de recherche…)
J'ai deux classes A
et B
telles que définies ci-dessous :
Fichier a.h
:
1 2 3 4 5 6 7 8 9 10 11 12 | #ifndef A_H #define A_H #include "b.h" class A { // [...] B b; } #endif |
Fichier b.h
1 2 3 4 5 6 7 8 9 10 11 12 | #ifndef B_H #define B_H #include "a.h" class B { // [...] A a; } #endif |
Comme vous pouvez le voir, la classe A
utilise donc la classe B
et vice-versa.
Le problème c'est que le compilateur me jette avec l'erreur suivante :
1 | b.h:9: erreur : 'A' was not declared in this scope |
De ce que je comprends, ce problème survient parce que la classe A
nécessite que la classe B
soit compilée, laquelle nécessite la classe A
pour pouvoir être compilée. Il y a donc conflit.
Existe-t-il une façon (élégante, de préférence) pour résoudre ce soucis fâcheux ?
Merci d'avance