Dynamic_cast & Base class virtuelle
Bonjour,
En lisant la documentation MSDN a propos du dynamic_cast, je me suis arrêté sur les quelques lignes traitant des classes bases virtuelles. Il y est dit que pour caster de A vers B (voir http://msdn.microsoft.com/library/de...t_operator.asp), on doit auparavant caster de A à E, et ensuite remonter (upcast) jusqu'a E. J'ai essaye, et ca ne fonctionne pas, voici mon code de test...
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
|
#include <iostream>
using namespace std;
class A { public: virtual ~A() { } };
class B : virtual public A { };
class C : virtual public B { };
class D : virtual public B { };
class E : virtual public C, virtual public D { };
int main()
{
E e;
A *pA = &e;
E *pE = dynamic_cast<E *>(pA);
return 0;
} |
Vous savez d'ou cela peut prevenir ?
Merci