字符百科

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

相关推荐
浴霸灯多少w

浴霸灯多少w

浴霸灯的功率有多种规格,以下是一些常见的功率选项:160瓦 250瓦100瓦275瓦50瓦到150瓦15瓦、25瓦、40瓦、50瓦275瓦(单个灯泡)550瓦(两个灯泡)1100瓦(四个灯泡)700W/900W/1200W/1400W/1800W/2000W 建议选择合适的功率:根据浴室的大小和取暖

2025-02-06 11:44:03

上海几个建筑多少米

上海几个建筑多少米

上海最高的三个建筑物分别是:上海中心大厦:高度为632米。上海环球金融中心:高度为492米。东方明珠广播电视塔:高度为468米。建议您根据最新的权威信息来获取准确数据,因为建筑高度可能会随时间而变化。

2025-02-01 09:19:32

插座用多少平电线

插座用多少平电线

家用插座电线的选择主要取决于插座的用途和所连接电器的功率。以下是一些常见情况下的推荐:普通照明灯具照明一般使用1.5平方毫米的电线。普通插座普通插座回路通常使用2.5平方毫米的电线。大功率电器卧室空调、储水式热水器、厨房插座等大功率电器建议使用4平方毫米的电线。柜式空调、即热式热水器等超大功率电器建

2025-02-01 09:12:01

领导结婚包多少红包

领导结婚包多少红包

领导结婚的红包金额应根据多种因素来决定,包括个人经济状况、与领导的关系亲密度以及当地的习俗等。以下是一些具体的建议:普通同事关系如果领导只是普通的同事关系,红包金额大约在300—500元之间。较为亲密的关系如果与领导关系较为亲密且领导比较看重自己,红包金额可以在500—1500元之间。地区习俗每个地

2025-02-01 08:55:31

北欧窗帘褶皱多少合适

北欧窗帘褶皱多少合适

北欧风格的窗帘褶皱倍数通常建议在 1.6到2.3倍之间。这个范围适合大多数现代和北欧风格的室内装饰,既能保证窗帘的简洁性,又能实现良好的遮光和隔音效果。具体选择多少倍的褶皱,可以根据以下因素进行调整:窗帘风格:北欧风格强调简洁和实用,因此褶皱倍数相对较少,以避免过于繁复。窗户大小:如果窗户较大,可以

2025-02-01 08:53:32