字符百科

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

相关推荐
太子少师和太子太师的区别

太子少师和太子太师的区别

古代所谓的“三公三孤”指的是太师,太傅,太保,以及少师,少傅,少保。这些官历史都极为久远,是仅有的从周朝保留到明清的官职。地位极为尊崇。太师,官名,始于商朝,殷纣之时,箕子为太师,周武王时,太公为太师。古时三公之首,周置﹐为辅弼国君之官。秦废。汉复置。晋代避司马师讳,曾改作太宰。晋之后复称太师﹐多为

2024-09-20 09:36:06

割席分坐的启示三十年(管宁割席分座说明什么?)

割席分坐的启示三十年(管宁割席分座说明什么?)

管宁、华歆共园中锄菜,见地有片金,管挥锄与瓦石不异,华捉而掷去之。又尝同席读书,有乘轩冕过门者,宁读如故,歆废书出看。宁割席分坐曰:“子非吾友也。”  王朗每以识度推华歆。歆蜡日①,尝集子侄燕②饮,王亦学之。有人向张华说此事,张曰:“王之学华,皆是形骸之外,去之所以更远。” 华歆、王朗俱乘船避难,

2024-09-20 09:22:02

dnf冒险团怎么升级最快

dnf冒险团怎么升级最快

dnf冒险团等级快速满级方法就是多练小号,从1级开始不吃胶囊和升级券到100级差不多是53.2亿经验,冒险团从35级升到40级需要从零开始练38个角色,注意不能吃胶囊和升级券。 详细答案: 从1级开始不吃胶囊和升级券到100级差不多是53.2亿经验。 如果是从1手动升到50,然后吃卷子到85,再手动

2024-09-20 08:35:57

剪力墙结构是什么意思(你真的了解剪力墙和剪力墙结构吗?)

剪力墙结构是什么意思(你真的了解剪力墙和剪力墙结构吗?)

减力墙专业来叫应该是叫剪力墙。  剪力墙:是由钢筋混凝土浇成的墙体。由剪力墙组成的承受竖向和水平作用力的结构,称为剪力墙结构。剪力墙的墙体同时也作为房屋分隔构件。剪力墙结构可建得很高,主要用于12-30层的住宅和旅馆建筑中,它的缺点是空间划分不灵活。 剪力墙结构:是用钢筋混凝土墙板来代替框架结构

2024-09-20 08:21:14

cpi ppi各代表什么

cpi ppi各代表什么

生产者物价指数(Producer Price Index--PPI),衡量工业企业产品出厂价格变动趋势和变动程度的指数,反映某一时期生产领域价格变动情况的重要经济指标,也是制定有关经济政策和国民经济核算的重要依据。测算商业支付价格的变化,计算通货膨胀。PPI是测算价格变化的指标,是制造商和批发商在生

2024-09-20 08:07:26

推荐标签