C++ 动态强制转换的运行时检查 dynamic\u cast(exp)
我在文件中看到, 如果新类型是指向派生的指针/ref,而表达式是指向基的指针/ref,则动态强制转换只执行运行时检查。C++ 动态强制转换的运行时检查 dynamic\u cast(exp),c++,casting,dynamic-cast,C++,Casting,Dynamic Cast,我在文件中看到, 如果新类型是指向派生的指针/ref,而表达式是指向基的指针/ref,则动态强制转换只执行运行时检查。 这些支票到底是关于什么的 编辑:在侧播中涉及哪些运行时检查。侧播(5b)是当exp不是new\u类型的基本类型时。示例:如果exp是指向aB的指针,该指针指向类T的对象,其中T派生自B和D,则 dynamic_cast <new type> (exp) dynamic\u cast(exp) 是一个侧面强制转换,它产生一个指向T的D基的指针“这些检查实际上是关于
这些支票到底是关于什么的 编辑:在侧播中涉及哪些运行时检查。侧播(5b)是当
exp
不是new\u类型的基本类型时。示例:如果exp
是指向aB
的指针,该指针指向类T
的对象,其中T
派生自B
和D
,则
dynamic_cast <new type> (exp)
dynamic\u cast(exp)
是一个侧面强制转换,它产生一个指向T
的D
基的指针“这些检查实际上是关于什么的?”-检查您向/从中强制转换的内容实际上是同一继承层次结构的一部分。您不能在不相关的类型之间强制转换。实际上他很善于解释这一点。@Mgetz我没有理解第5点后面的几行。第5c部分通常对我最有用(如果无法转换指针,则返回null)。C++中的(PTR实例)(< C++)是<代码> >(Dyrimajava(PTR))< /C> > HiToBAT不同于java,C++对继承和重复继承有访问控制,因此它更包含“T的d基”,当初始化一个具有多个父类的对象时,这意味着什么,每个父类型的对象都在引擎盖下构造。在本例中,T
源自B
和D
。此强制转换为您提供指向D
父对象或基的指针。
dynamic_cast<D*> (exp)