Récupérer une instance de la classe dérivée
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:
1 2 3 4 5 6 7 8 9 10
|
class B;
class C;
class A
{
public :
B* getB();
C* getC();
} |
Code:
1 2 3 4 5
|
class B : public A
{
...
} |
J'utilise pour cela la méthode
Citation:
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:
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 :
Citation:
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 (: