千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  应聘面试  >  物联网面试题  > 谈谈静态转换、动态转换、常量转换、重新解析转换的区别

谈谈静态转换、动态转换、常量转换、重新解析转换的区别

来源:千锋教育
发布人:syq
时间: 2022-09-01 11:12:26 1662001946

  静态转换(static_cast)

  用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。

  1、进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;

  2、进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。

  3、用于基本数据类型之间的转换,如把int转换成char,把char转换成int。这种转换的安全性也要开发人员来保证。

静态转换、动态转换、常量转换、重新解析转换的区别

  动态转换(dynamic_cast)

  1、dynamic_cast主要用于类层次间的上行转换和下行转换;

  2、在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;

  3、在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。

  常量转换(const_cast)

  1、该运算符用来修改类型的const属性。

  2、常量指针被转化成非常量指针,并且仍然指向原来的对象;

  3、常量引用被转换成非常量引用,并且仍然指向原来的对象;

  注意:不能直接对非指针和非引用的变量使用const_cast操作符去直接移除它的const

  重新解析转换(reinterpret_cast)

  这是最不安全的一种转换机制,最有可能出问题。主要用于将一种数据类型从一种类型转换为另一种类型。它可以将一个指针转换成一个整数,也可以将一个整数转换成一个指针。

  更多关于物联网培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT