在使用基本数据类型时,会用到类型转换,但是在类中,也存在类型转换,并且分为向上类型转换和向下类型转换两种方式。
1.向下类型转化
在内存中,基类所占用的内存空间一定小于等于派生类占用的内存空间,因为基类中的变量和函数派生类中一定会有,并且派生类中可能会拓展函数。
而向下类型转换就是基类转派生类,这是不安全的,因为可能会发生地址越界的情况。
2.向上类型转换
向上类型转换就是派生类转基类,这是安全的,因为不可能会发生地址越界的情况。
两种类型转换示意图:
3.多态中的转化
多态中的转换一定是安全的!
比如:
Animal* animal = new Cat;
因为Cat是派生类,所以一定不会发生地址越界!