Outils pour utilisateurs

Outils du site


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.

Source, Archive

lang/cpp/heritage.1496228797.txt.gz · Dernière modification : 2017/05/31 13:06 de root