0

我对术语“静态类型”和“动态类型”有点困惑。

给定

class A {};
class B:A {};

A* a = new B();
B* b = new B();

*a 的静态类型为 B,动态类型为 A。*b 的静态类型为 B,动态类型为 B。

那是对的吗?

这不是关于动态类型检查的问题,而是关于“静态类型”和“动态类型”的问题。在这篇文章http://makomdev.blogspot.com/2008/04/c-static-types-vs-dynamic-types.html中,作者将静态类型定义为“真实”类型,将动态类型定义为基本类型。他还用 rhs 和 lhs 来定义它们,这似乎是矛盾的。

4

0 回答 0