Salut à tous,

on m'a soumis un problème de compil hier soir. Le soucis est résolu, mais j'ai un doute sur l'explication que j'ai fourni.

Le code présentait à mon sens 2 implémentations douteuses.

4 fichiers : A.h A.cpp B.h et B.cpp

1. Malgré les ifndef, A.h incluer B.h et vice versa.
2. Dans A.h, la classe avait un objet B.

A la compilation du fichier B.cpp, le type B n'était pas reconnu.

Venant du C, mon idée est que le compilo ne connait pas encore la classe B.
Dans B.h, j'inclus A.h, donc ma classe B apparait à la compilation de B.cpp, mais B n'est pas encore défini, car il apparait plus bas dans le code.
Je voudrais savoir si en C++, le compilo peut compiler, sans pour le moment connaître l'objet et que l'erreur vient du fait que A.h inclue B.h (vice versa), de cette déclaration avant la définition de l'objet, voir les 2.

Au final, on a supprimé A.h de B.h... le tour était joué.

Merci.