Memahami dynamic_cast dalam C
dynamic_cast, seperti namanya, membolehkan semakan jenis masa jalan untuk penuding dan penukaran rujukan dalam C . Tidak seperti static_cast, yang melakukan penukaran masa kompilasi, dynamic_cast membuat pengesahan pada masa pelaksanaan.
Untuk memahami konsep dynamic_cast dalam C , mari kita bandingkannya dengan bahasa C.
static_cast
static_cast<Type*>(ptr);
Ini melakukan penukaran jenis daripada ptr ke Taip* pada masa penyusunan. Walau bagaimanapun, ia menganggap jenis itu berkaitan dan memerlukannya supaya serasi. Jika penukaran tidak sah, atur cara akan gagal untuk menyusun.
dynamic_cast
dynamic_cast<Type*>(ptr);
Sama seperti static_cast, dynamic_cast cuba menukar penunjuk ptr kepada Type* . Walau bagaimanapun, penukaran ini berlaku pada masa jalan. Ini membolehkan lebih fleksibiliti, terutamanya apabila berurusan dengan pewarisan dan polimorfisme.
Dalam contoh yang disediakan:
Peraturan untuk Dynamic_cast:
Ingat bahawa untuk tuangan asas kepada terbitan, kelas yang terlibat mestilah polimorfik. Ini bermakna mereka mesti mempunyai sekurang-kurangnya satu fungsi maya yang diisytiharkan dalam kelas asas mereka.
Atas ialah kandungan terperinci Bagaimanakah `dynamic_cast` C berbeza daripada `static_cast` dalam Runtime Type Checking?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!