Bonjour.
J'essaie de mettre en oeuvre la méthode décrite dans la FAQ "Les classes en C++" par Laurent Gomila sur les références croisées. J'ai recopié son exemple et l'ai compilé avec C++ Builder 2007.
Je suis très surpris de constater que le compilateur n'accepte pas la méthode de la déclaration anticipée et génére une série d'erreurs que je reporte ici:
[BCC32 Error] A.h(6): E2141 Declaration syntax error
[BCC32 Error] A.h(9): E2141 Declaration syntax error
[BCC32 Error] B.h(8): E2238 Multiple declaration for 'Class'
[BCC32 Error] A.h(9): E2344 Earlier declaration of 'Class'
[BCC32 Error] B.h(8): E2141 Declaration syntax error
C'est à dire que la méthode ne semble pas avoir résolu le problème de déclaration récursive des classes A et B. Le code:
A.h
A.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class B; class A { B* PtrB; };
B.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #include "A.h" #include "B.h" // ...
B.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include "A.h" class B { A a; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include "B.h" // ...
Quelqu'un a-t-il déjà résolu ce problème?
Merci d'avance.
Partager