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