Bonjour,

j'ai un programme comportant 3 classes, une classe mère (class A) et deux classes filles (class B et class C). je souhaiterai, via la class mère, récupérer l'instance de la classe qui a été dérivée.

Voici les .h des classes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
class B;
class C;
 
class A
{
public :
B* getB();
C* getC();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
class B : public A
{
...
}
J'utilise pour cela la méthode
dynamic_cast<>()
, mais je reçois une erreur et j'ai du mal a comprendre ce qu'elle signifie...

Voici le code des méthodes qui posent le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
B* A::getB()
{
    return dynamic_cast<B*>(this);
}
 
C* A::getC()
{
    return dynamic_cast<C*>(this);
}
Enfin, voici l'erreur qui apparaît lors de la compilation :
erreur: cannot dynamic_cast ‘this’ (of type ‘class A* const’) to type ‘struct B*’ (target is not pointer or reference to complete type)
Voilà, si quelqu'un à une idée pour savoir comment faire, je suis preneur!
Merci d'avance (: