Bonjour,
je ne comprend pas bien ce qui cloche dans le code suivant (simplifié par souci de clarté) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // A.cpp #include "A.h" #include "B.h" void A::fonctionMembreDeA(C& c) { B b; // Erreur : expected ';' before b; c.b[2].fonctionMembreDeB(); // Pas de problème }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // A.h #include "C.h"; // Compile avec include mais pas avec déclaration anticipée class A { public: void fonctionMembreDeA(C& c); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // B.h class B { public: void fonctionMembreDeB(); };Dans ma fonction principale A, je peut donc utiliser une fonction membre de la classe B mais pas créer d'instance de cette classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // C.h #include <vector> class B; class C { public: vector<B> b; };!
Je précise au cas ou ce serait utile que les fichiers B.h et C.h viennent toute deux d'un autre projet qui tourne très bien.
Merci d'avance pour vos suggestions.
Partager