Когда вы узнаете о полиморфизме, вы обычно видите что-то вроде этого
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
Что такое upcasting или downcasting? Является (Derived*)base_ptr;ли upcast или downcast?
Я называю это унылым, потому что вы уходите с базы во что-то более конкретное. Другие люди говорили мне, что это уныло, потому что вы идете вниз по иерархии к чему-то конкретному, а вершина является корнем. Но другие люди, кажется, называют это так, как я это называю.
При преобразовании базового ptr в производный ptr это называется upcasting или downcasting? и если кто-то может сослаться на официальный источник или объяснить, почему его так называют, чем здорово.
virtualненужно, но не «больно». Можете ли вы уточнить, почему вы считаете, что его вообще не следует использовать в этом контексте?