dynamic_cast hile yapmalı
TYPE& dynamic_cast<TYPE&> (object);
TYPE* dynamic_cast<TYPE*> (object);
dynamic_cast
Anahtar kelime döküm geçerliliğini sağlamak için bir çalışma zamanı kontrolü yaptıktan, başka bir işaretçi veya referans türünden bir referans noktasını düşürdü.
Gerçek nesne türü olmayan bir türe işaretçi çevirmeye çalışırsanız, çevrimin sonucu NULL olacaktır. Gerçek nesne türü olmayan bir türe gönderme yapmaya çalışırsanız, çevrim bir bad_cast
istisna atar .
Dynamic_cast'in çalışması için Base sınıfında en az bir sanal işlev olduğundan emin olun.
Wikipedia konusu Çalışma zamanı türü bilgisi
RTTI, yalnızca polimorfik sınıflar için kullanılabilir, yani en az bir sanal yöntemi vardır. Uygulamada, bu bir sınırlama değildir çünkü temel sınıfların, bir temel işaretçiden silindikleri takdirde, türetilmiş sınıfların nesnelerinin düzgün temizleme gerçekleştirmesine izin vermek için sanal bir yıkıcıya sahip olması gerekir.
code void *p1 = new int(); void *p2 = new double(); void f(void *p) {....code goes here } f(p1) should print int... f(p2) should print double...