为什么dynamic_cast可以用于非多态类型的upcast?

时间:2016-08-15 12:10:48

标签: c++ pointers polymorphism dynamic-cast

请参阅here

  

dynamic_cast只能用于指针和对类的引用   (或无效*)。其目的是确保类型的结果   转换指向目标的有效完整对象   指针类型。

     

这自然包括指针upcast(转换自   指向派生到指针到指针的指针,与允许的方式相同   隐式转换。

     

但是dynamic_cast也可以向下转换(从指针转换为   指向派生的多态类(具有虚拟成员的类)   if - 且仅当 - 指向的对象是有效的完整对象   目标类型。

为什么dynamic_cast可以用于非多态类型的upcast,但对于非多态类型再次向下转换是不行的?

0 个答案:

没有答案