probleme avec dynamic_cast
bonjour,
je vous montre mon code ca sera plus simple :
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
|
class A
{
public:
A(){ cout << "objet A créé" << endl;}
int m_a = 0;
};
class B : public A
{
public:
B() : A(){ cout << "objet B créé" << endl;}
int m_b = 0;
};
int main(int argc, char* argv[])
{
A* a = new B; //crée une zone mémoire de la taille de B et appelle le constructor B()
B * rb = dynamic_cast<B*> (a); //je devrais pouvoir faire un dynamic cast car 'a' est de taille de B
return 0;
} |
Le probleme est que le compilateur me retourne :
Code:
1 2
| main.cpp:44:33: error: cannot dynamic_cast a (of type class A*) to type class B* (source type is not polymorphic)
B * rb = dynamic_cast<B*> (a); |
merci d'avance pour votre aide