[C++] 对象的静态类型和动态类型

由于继承导致对象的指针和引用具有两种不同的类型:静态类型和动态类型。
静态类型:指针或者是引用声明时的类型。
动态类型:由实际指向的类型确定。

GameObject *pgo = new SpaceShip // pgo 静态类型是 GameObject*, 动态类型是 SpaceShip*
Asterioid *pa = new Asterioid;  // pa 的静态类型是 Asterioid *, 动态类型也是 Asterioid *
pgo = pa;                       // pgo 静态类型总指向 GameObject *, 动态类型指向 Asterioid *
GameObject &rgo = *pa;          // rgo 的静态类型是 GameObject, 动态类型是 Asterioid




C++基础之:对象的静态类型和动态类型

猜你喜欢

转载自blog.csdn.net/ftell/article/details/80184066