Bonjour tout le monde

J'ai rencontré un problème lors de la compilation de mon projet :

J'ai une classe mère A et j'ai deux classe B et C qui dérive d'une manière virtuelle de A

class A
{
};

class B:virtual public A
{};


class C:virtual public A
{};


J'ai dans mon projet ce ligne de code :
B* b=static_cast<B *>a;

tel que a est un pointeur de type A.

il me donne une erreur de compilation :
error: illegal type cast

Je voudrais savoir la source de l'erreur sachant que ca marche tres bien si j'enlève le mot virtual des deux classes filles..


Merci d'avance pour votre aide

A bientôt