我想知道何时必须或应该在 static_cast 上使用 dynamic_cast,并附上示例。我读过这个 SO question,但它并没有真正提供任何具体的例子。我假设大多数示例将涉及多态类类型。目前我知道在 static_cast 上使用 dynamic_cast 的唯一原因是如果我不能 100% 确定我正在使用的具体类型。
其他一些想法:
- 横向转换(在多重继承中)
- 在虚拟继承层次结构中转换为基类
- 在使用多重继承的类中转换为“最正确”的继承类型时,指针是否会改变(如果使用 static_cast)?
“如果类型未知”的原因是唯一的原因吗?如果没有,有人可以提供示例来说明为什么必须或应该在 static_cast 上使用 dynamic_cast 吗?