MSDN によると、Visual C++ での実装には__RTDynamicCast() 関数が使用されます。dynamic_castそのパラメーターの 1 つは、LONG VfDelta「オブジェクト内の仮想関数ポインターのオフセット」として記述されています。
AFAIKvptrは常にオブジェクトの先頭にあるため、オフセットは常にゼロになります。を使用してさまざまなコード スニペットの逆アセンブルを詳しく調べましたdynamic_castが、このパラメーターの代わりに 0 以外が渡されているのを見たことがありません。
vptrオブジェクトの開始以外の場所に配置されたことはありますか? このオフセットはゼロ以外にできますか?