dynamic_cast ควรทำเคล็ดลับ
TYPE& dynamic_cast<TYPE&> (object);
TYPE* dynamic_cast<TYPE*> (object);
dynamic_cast
คำหลักปลดเปลื้องตัวเลขจากตัวชี้หรือการอ้างอิงประเภทหนึ่งไปยังอีกที่มีประสิทธิภาพการตรวจสอบรันไทม์เพื่อให้มั่นใจความถูกต้องของตัวละคร
หากคุณพยายามที่จะส่งตัวชี้ไปยังชนิดที่ไม่ใช่วัตถุจริงผลลัพธ์ของการส่งจะเป็น NULL หากคุณพยายามที่จะร่ายอ้างอิงถึงประเภทที่ไม่ใช่วัตถุจริงนักแสดงจะโยนbad_cast
ข้อยกเว้น
ตรวจสอบให้แน่ใจว่ามีอย่างน้อยหนึ่งฟังก์ชั่นเสมือนจริงในคลาสฐานเพื่อให้ dynamic_cast ทำงาน
ข้อมูลวิกิพีเดียหัวข้อประเภทเวลาทำงาน
RTTI พร้อมใช้งานสำหรับคลาสที่ polymorphic เท่านั้นซึ่งหมายความว่ามีวิธีเสมือนอย่างน้อยหนึ่งวิธี ในทางปฏิบัติสิ่งนี้ไม่ใช่ข้อ จำกัด เนื่องจากคลาสพื้นฐานต้องมี destructor เสมือนเพื่ออนุญาตให้วัตถุของคลาสที่ได้รับมาทำการล้างข้อมูลที่เหมาะสมหากถูกลบออกจากตัวชี้พื้นฐาน