Ho letto alcuni altri thread su questo sito e menzionano come dynamic_cast e static_cast siano entrambi sicuri per l'upcasting.Casting - Perché dovrei farlo per Upcasting
Perché sono necessari anche per l'upcasting?
Ad esempio, se la classe B è derivato da A, allora
A * ptr = new B();
funziona ancora, e si comporta come un oggetto di tipo A. (io sono anche da un ambiente Java in cui la conversione per upcasting non è necessaria.
ho anche letto su questo sito che dynamic_cast non è necessario per downcasting [in questione "When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?"] . anche in questo caso, penserei che casting è veramente solo necessario quando si sta downcasting dal upcasting avviene in modo automatico.
Dove mi sbaglio?
Nota: nella domanda precedente, una delle risposte dice "Non devi usarlo per lanciare verso il basso ...". Tuttavia, dal contesto della frase completa, il significato è che non sei limitato a usarlo solo per lanciare verso il basso. [Ho modificato quella risposta per rimuovere l'ambiguità.] –