Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 动态强制转换的运行时检查 dynamic\u cast(exp)_C++_Casting_Dynamic Cast - Fatal编程技术网

C++ 动态强制转换的运行时检查 dynamic\u cast(exp)

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基的指针“这些检查实际上是关于

我在文件中看到, 如果新类型是指向派生的指针/ref,而表达式是指向基的指针/ref,则动态强制转换只执行运行时检查。
这些支票到底是关于什么的

编辑:在侧播中涉及哪些运行时检查。

侧播(5b)是当
exp
不是
new\u类型的基本类型时。示例:如果
exp
是指向a
B
的指针,该指针指向类
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)