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

 

由于继承导致对象的指针和引用具有两种不同的类型: 静态类型 动态类型

静态类型 :指针或者是引用声明时的类型。

动态类型 :由他实际指向的类型确定。

例如:

GameObject *pgo=   //pgo静态类型是 GameObject *

new SpaceShip; //动态类型是 SpaceShip*

Asterioid *pa = new Asterioid; //pa的静态类型是 Asterioid *

//动态类型也是 Asterioid *

pgo = pa; //pgo静态类型总指向 GameObject *

//动态类型指向了 Asterioid *

GameObject &rgo = *pa; //rgo的静态类型是 GameObject

//动态类型是 Asterioid

 

你可能感兴趣的:(C++)