C++ では、クラスへのポインタには、ポインタ宣言の中に書かれた型である「静的な型」と、参照された実際の型によって決定される「動的な型」があります。オブジェクトの動的な型は、静的な型から派生したものであればいずれのクラス型でもかまいません。
次の例で、ap には静的な型 A* と動的な型 B* があります。
class A {};
class B: public A {};
extern B bv;
extern A* ap = &bv;
RTTI によって、プログラマがポインタの動的な型を決定できるようになります。