__RTDynamicCast

dynamic_cast 运算符的运行时实现。

语法

PVOID __RTDynamicCast(
   PVOID inptr,
   LONG VfDelta,
   PVOID SrcType,
   PVOID TargetType,
   BOOL isReference
) throw(...)

参数

inptr
指向多态对象的指针。

VfDelta
对象中的虚函数指针的偏移量。

SrcType
inptr 参数指向的对象的静态类型。

TargetType
转换的预期结果。

isReference
如果输入是引用,则为 true;如果输入是指针,则为 false

返回值

如果成功,则为指向适当的子对象的指针;否则为 NULL

异常

如果 bad_cast() 的输入为引用并且转换失败,则为 dynamic_cast<>

备注

inptr 转换为 TargetType 类型的对象。 如果 TargetType 是指针,则 inptr 类型必须为指针,或者如果 TargetType 是引用,则为左值。 TargetType 必须是针对以前定义的类类型的指针或引用,或者是指向 void 的指针。

要求

例程 必需的标头
__RTDynamicCast <rttidata.h>