Ketika belajar tentang polimorfisme, Anda biasanya melihat sesuatu seperti ini
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
Apa itu upcasting atau downcasting? Apakah (Derived*)base_ptr;
upcast atau downcast?
Saya menyebutnya upcast karena Anda akan pergi dari pangkalan ke sesuatu yang lebih spesifik. Orang lain mengatakan kepada saya itu downcast karena Anda akan turun ke hierarki sesuatu yang spesifik dengan yang atas menjadi root. Tetapi orang lain tampaknya menyebutnya apa yang saya sebut itu.
Ketika mengkonversi ptr basis ke ptr turunan apakah ini disebut upcasting atau downcasting? dan jika seseorang dapat menautkan ke sumber resmi atau menjelaskan mengapa ini disebut hebat.
virtual
tidak perlu tetapi tidak "sakit". Bisakah Anda menguraikan mengapa Anda pikir itu tidak boleh digunakan sama sekali dalam konteks itu?