Ao aprender sobre polimorfismo, você geralmente vê algo assim
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
O que é upcasting ou downcasting? É (Derived*)base_ptr;
um upcast ou downcast?
Eu chamo de upcast porque você está saindo da base para algo mais específico. Outras pessoas me disseram que é um downcast porque você está descendo uma hierarquia para algo específico, com o topo sendo a raiz. Mas outras pessoas parecem chamar o que eu chamo.
Ao converter um ptr base em um ptr derivado, isso é chamado upcasting ou downcasting? e se alguém puder criar um link para uma fonte oficial ou explicar por que isso é chamado de ótimo.
virtual
é desnecessário, mas não "machuca". Você pode explicar por que você acha que não deve ser usado nesse contexto?