26Fermer28
azeLe 02/06/2008 à 08:48
geogeo> si si, l'héritage est géré dans tous les cas de cast. Si la méthode est virtuelle, peu importe si tu castes ta variable en son type de base, c'est toujours la méthode du type dérivé quie sera appellé.
La différence avec le static_cast c'est que le dynamic_cast est fait à l'execution et renverra un pointeur NULL si tu tentes de caster une variale vers un type qui n'est pas le sien.
Class Base {};
Class DeriveA : public Base {};
Class DeriveB : public Base {};

Base *classe = new DeriveA;
dynamic_cast<DeriveB*>(classe); // renvoit NULL