字符百科

c语言强制类型转换详解(四种强制类型转换)

时间:2024-08-20 10:20:12

C++是一种强类型语言,对类型的检查非常严格,我们可以使用C语言中的(NewType)Expression来对某个变量或者表达式返回值进行强转,也可以使用C++中提供的新式转换操作符:const_cast,dynamic_cast,reinterpret_cast,static_cast。下面介绍着四种转换使用的不同场景。

一,const_cast

const_cast顾名思义,用来将对象的常亮性转除,使常亮可以被修改。const_cast(varible)中的type必须是指针,引用,或者指向对象类型成员的指针。

二,dynamic_cast

用来处理一种“安全向下转换”,当我们将父类指针指向一个new出来的子类A对象时,如果该父类有多个不同子类(class A,class B,),那么可以使用dynamic_cast将该指针类型安全转换为A*,如果使用强转操作符或者下面介绍的static_cast,那么将其转换为B*理论上也是可以的,但是使用上就会有错误

三,reinterpret_cast

是特意用于底层的强制转型,导致实现依赖(就是说,不可移植)的结果,例如,将一个指针转型为一个整数。这样的强制类型在底层代码以外应该极为罕见。操作结果只是简单的从一个指针到别的指针的值的二进制拷贝。在类型之间指向的内容不做任何类型的检查和转换。

四,static_cast

static_cast用来处理隐式转换,等同于C语言中的(NewType)Expression强转,它可以将int转为float,也可以将char*转为int,将指向基类的指针转为一个指向子类的指针,同时可以将non-const转为const对象,但是它不能将一个const对象转为non-const(这个是const_cast的功能)。此处就不再举例。

相关推荐
卡魔拉保险柜24小时人工服务24小时客服全国各售后受理客服中心

卡魔拉保险柜24小时人工服务24小时客服全国各售后受理客服中心

卡魔拉保险柜售后维修客服热线{400-883-2086} 卡魔拉保险柜是一款实用的家用产品,能够有效的保护我们的财富和贵重物品。随着时间的推移,即使是卡魔拉保险柜也会遇到一些故障和问题。卡魔拉保险柜服务热线24小时故障报修全天候保修热线】就是一个可以为您解决所有问题的地方。  服务区

2025-06-15 22:04:53

火星人集成灶24小时售后服务热线实时反馈-今-日-资-讯

火星人集成灶24小时售后服务热线实时反馈-今-日-资-讯

您好,火星人集成灶的24小时售后人工电话是400-883-2086这个电话号码是火星人集成灶提供的售后服务热线,您可以在任何时间拨打此电话寻求火星人集成灶的售后支持。无论是产品咨询、故障报修还是其他售后服务需求,火星人集成灶的客服人员都会及时为您解答和处理。此外,如果您在使用火星人集

2025-06-15 20:58:48

美心指纹锁热线服务维修400客服24小时客户报修热线

美心指纹锁热线服务维修400客服24小时客户报修热线

美心指纹锁作为家用设备的领先品牌,始终致力于为用户提供高品质的产品和专业的售后服务。无论您遇到任何问题,都可以拨打美心指纹锁售后服务电话:400-883-2086,我们的专业团队将为您提供及时、高效的解决方案。美心指纹锁热线服务维修400客服24小时客户报修热线日常使用故障及处理方法在使

2025-06-15 20:22:45

站立3小时  只为和叠滘“吴彦祖”深情对视2秒

站立3小时 只为和叠滘“吴彦祖”深情对视2秒

你漂我都漂,大家一起飙。6月15日下午,佛山茶基赛区J弯彻底燃起来啦!海天味业・2025中国(佛山)叠滘龙船漂移大赛在此上演速度与激情。现场气氛热烈,呐喊声、锣鼓声交织。不少市民为观赛站立3小时,只为一睹叠滘“吴彦祖”的风采。文图视频/佛山市新闻传媒中心记者 刘赟 周明谦 朱志荣赛事预告海天味业·2

2025-06-15 18:34:00

真查实改解难题

真查实改解难题

“以前得走十几分钟才能到最近的公交站,现在528路小巷公交直接开到小区里,在家门口就能坐公交了。”家住济南工人新村的王女士说。她口中的小巷公交,是一辆车身长6米的小型公交,专为老城区道路设计,不久前刚刚投入运行。目前,济南市已经开通8条小巷公交。这些小巧的公交车灵活穿行在老城区、老旧小区,解决了部分

2025-06-15 17:44:00