lang:cpp:heritage
Ceci est une ancienne révision du document !
reinterpret_cast sur une classe avec héritage
Un static_cast
ou un dynamic_cast
ne pose pas de problème dans le cas d'héritage multiple.
Par contre, un reinterpret_cast
d'un void *
doit toujours se faire sur la classe la plus basse (la plus enfant). Un void *
ne possède aucune information du type de la classe et donc le compilateur ne sait pas comment s'en sortir. Par exemple avec les méthodes virtuelles, il ne peut pas savoir à quelle classe appartient la première méthode en tête de la vtable
. Il y a les mêmes problèmes avec les attributs de la classe.
lang/cpp/heritage.1496228797.txt.gz · Dernière modification : 2017/05/31 13:06 de root