Lorsque vous découvrez le polymorphisme, vous voyez souvent quelque chose comme ça
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
Qu'est-ce que l'upcasting ou downcasting? Est-ce (Derived*)base_ptr;
un upcast ou downcast?
Je l'appelle upcast parce que vous vous éloignez de la base pour quelque chose de plus spécifique. D'autres personnes m'ont dit que c'est un abattage parce que vous descendez une hiérarchie dans quelque chose de spécifique avec le sommet étant la racine. Mais d'autres semblent l'appeler comme je l'appelle.
Lors de la conversion d'un ptr de base en un ptr dérivé, est-il appelé upcasting ou downcasting? et si quelqu'un peut créer un lien vers une source officielle ou expliquer pourquoi cela s'appelle ça génial.
virtual
est inutile mais ne fait pas "mal". Pouvez-vous expliquer pourquoi vous pensez qu'il ne devrait pas du tout être utilisé dans ce contexte?