因此,dynamic_cast只能用于处理类的指针或引用。此外,要求类型必须是“完整类类型”,意味着该类型必须是已经定义过的类类型,且不是抽象类(即至少有一个非纯虚函数)。这是因为dynamic_cast需要在运行时检查对象的实际类型,以决定转换是否安全。 void*指针是一个特殊情况,因为它可以指向任何类型的数据,包括类的对象。
dynamic_cast是啥,dynamic_cast这个操作运算符主要是用来执行安全向下转型,如果我们的转换目标是指针类型且转换失败,那么得到的结果为nullptr,如果转换目标是引用类型而且失败了,则会抛出std::bad_cast异常。 也就是说,我们如果将Base类型的对象,通过dynamic_cast转换为Derived类型的对象时,我们可以看到下图中from_base_p...