我想知道什么是静态和动态类型检查以及它们之间的区别。

最佳答案

静态类型检查意味着类型检查在编译时进行。在这种情况下,在运行时不使用类型信息。

动态类型检查是在运行时使用类型信息时发生的。 C++使用一种称为RTTI(运行时类型信息)的机制来实现这一点。使用RTTI的最常见示例是dynamic_cast运算符,该运算符允许向下转换多态类型:

// assuming that Circle derives from Shape...
Shape *shape = new Circle(50);
Circle *circle = dynamic_cast<Circle*> shape;

此外,您可以使用typeid运算符查找有关对象的运行时类型。例如,您可以使用它来检查示例中的形状是圆形还是矩形。这是一些further information

09-10 01:38
查看更多