definition partielle de classe
Bonjour a tous,
je suis confronté a un probleme assez genant. Plutot qu'un long discours, voici le code qui pose probleme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
class B;
class A
{
private:
B *b;
public:
A(){}
void set_b(B* _b){
this->b = _b;
this->b->print(); // <--- ceci pose probleme
}
};
class B
{
private:
A a;
public:
B(){}
void set_a(A _a){this->a = _a;}
void print();
};
int main()
{
A a;
return 0;
} |
a la compilation de ce code, j'obtiens le resultat suivant :
test.cpp: In member function ‘void A::set_b(B*)’:
test.cpp:9: erreur: invalid use of undefined type ‘struct B’
test.cpp:1: erreur: forward declaration of ‘struct B’
Le fait est que j'ai besoin d'appeler une methode de la classe B dans A sachant que B n'est definit que partiellement.
Auriez-vous une solution pour remedier à ce probleme ?
Merci d'avance,
Sam