dynamic_cast harus melakukan triknya
TYPE& dynamic_cast<TYPE&> (object);
TYPE* dynamic_cast<TYPE*> (object);
Itu dynamic_cast
kunci melempar datum dari satu penunjuk atau tipe referensi ke yang lain, melakukan pemeriksaan runtime untuk memastikan validitas pemeran.
Jika Anda mencoba melakukan cast ke pointer ke tipe yang bukan tipe objek aktual, hasil dari cast akan NULL. Jika Anda mencoba melakukan cast untuk merujuk ke tipe yang bukan tipe objek aktual, para pemain akan melemparkan bad_cast
pengecualian.
Pastikan setidaknya ada satu fungsi virtual di kelas Base untuk membuat dynamic_cast berfungsi.
Topik Wikipedia Informasi jenis waktu berjalan
RTTI hanya tersedia untuk kelas yang polimorfik, yang berarti mereka memiliki setidaknya satu metode virtual. Dalam praktiknya, ini bukan batasan karena kelas dasar harus memiliki destruktor virtual untuk memungkinkan objek kelas turunan melakukan pembersihan yang tepat jika dihapus dari pointer basis.