我对术语“静态类型”和“动态类型”感到有些困惑。
鉴于
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来定义它们,这似乎是矛盾的。