首页 > 代码库 > [015]向下类型转换和向上类型转换
[015]向下类型转换和向上类型转换
1.定义
向下类型转换:从父类转换为子类
向上类型转换:从子类转换为父类
2.区别和危险性
1)一般来讲,向上类型转换都是安全的,例如:
Base base;
Device dev;
base = dev; ←向上数据转换
2)向下类型转换是危险的,因为子类可能存在一些父类其他不存在的个性(增加了成员变量和函数)。例如:
dev = base; ←向下数据转换
更有可能产生切片问题,为了避免这种情况,我们可以使用dynamic_cast来继续进行向下类型转换。
Device *dev = dynamic_cast<Devece *>base; ←向下数据转换
尽管如此,还是可能出现失败的情况,因此不推荐向下类型转换。
[015]向下类型转换和向上类型转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。