__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> |