字符百科

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

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

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的功能)。此处就不再举例。

相关推荐
南京的高校有哪些(南京市高校汇总)

南京的高校有哪些(南京市高校汇总)

南京市2所985高校,8所211大学(含2所985),以及多所双一流大学。1. 南京大学• 南京大学是我国教育部直属的全国重点大学,中央直管副部级建制,位列“双一流”(世界一流大学和一流学科)A类、“211工程”、“985工程”重点建设高校,同时是九校联盟(C9)、中国大学校长联谊会、环太平洋大学联

2024-09-19 10:36:02

井研县旅游景点有哪些(盘点十大值得井研人自豪的景点)

井研县旅游景点有哪些(盘点十大值得井研人自豪的景点)

十大值得井研人自豪的地方你去过几个地方? 成都战役・首战遗址景区项目 该项目建设内容包括一个核心区即“烈士纪念园”,五大板块即“民俗风情广场”“竹园古铺”“素质教育拓展训练基地”“革命雕塑长廊”“战争演展”。积极开展集镇风貌塑造,项目整体占地面积约300亩,总投资约1亿元,其中一期项目包括纪念广场、

2024-09-19 10:20:34

沙陀族是现在什么族

沙陀族是现在什么族

要说晚唐五代最辉煌的民族,那必须是沙陀族,自唐初依附于唐朝之后,多次为唐朝征战,也多次反叛过唐朝,但因为势力弱小,始终无法壮大,直到晚唐的李克用时期才逐渐崛起,李克用带领沙陀人讨伐黄巢起义,成为晚唐仅次于朱温的势力,且长期与朱温为敌,谁也奈何不了谁。沙陀人建立的最强王朝:后唐李克用去世后,以李存勖为

2024-09-19 10:06:15

工匠精神代表人物有哪些(工匠精神的名人事例介绍)

工匠精神代表人物有哪些(工匠精神的名人事例介绍)

1. 董礼涛:哈电集团汽轮机公司数控铣工、特级技师。1986年进入哈尔滨汽轮机厂技工学校,工作后他努力钻研技艺,2007年首个以他个人名字命名的“董礼涛——汽轮机百万机组主汽阀阀杆键槽加工法”在公司推广。2010年,他承担国家西气东输长输管道燃气增压设备国产化重要部件的生产攻关,经过数月努力,成功实

2024-09-19 09:51:15

葡萄酒的酿制方法步骤(红酒的酿制方法是怎样的)

葡萄酒的酿制方法步骤(红酒的酿制方法是怎样的)

红酒的酿制方法红酒的酿制方法有很多种,如:传统发酵法、旋转罐法、二氧化碳浸渍法、热浸提法和连续发酵法。虽然酿制方法颇多,但它们都有共同点,都要先去梗、压榨,再将果肉、果核、果皮统统装进发酵桶中发酵。发酵过程中酒精发酵和色素、香味物质的提取要同时进行。发酵桶或罐都需要用低剂量的so2处理,以预防微生物

2024-09-19 09:36:16

推荐标签