Possibilité d'utiliser une fonction membre mais pas de créer une instance
Bonjour,
je ne comprend pas bien ce qui cloche dans le code suivant (simplifié par souci de clarté) :
Code:
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:
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:
1 2 3 4 5 6 7
| // B.h
class B
{
public:
void fonctionMembreDeB();
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11
| // C.h
#include <vector>
class B;
class C
{
public:
vector<B> b;
}; |
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 :weird: !
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.