static_cast、const_cast用法

本文详细介绍了C++中的static_cast和const_cast用法。static_cast主要用于类层次结构中基类和子类间的转换,基本数据类型转换,以及void指针转换,但不安全。const_cast则用于修改变量的const或volatile属性,允许转换常量指针或引用为非常量,以改变其操作权限,但不会改变实际对象的const属性。
摘要由CSDN通过智能技术生成

static_cast 用法

用法

static_cast < type-id > ( expression )

说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。

来源:为什么需要static_cast强制转换?

  1. 情况1:void指针->其他类型指针
  2. 情况2:改变通常的标准转换
  3. 情况3:避免出现可能多种转换的歧义

它主要有如下几种用法:
•用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类指针或引用)时,由于没有动态类型检查,所以是不安全的。
•用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。
•把void指针转换成目标类型的指针(不安全!!)
•把任何类型的表达式转换成void类型
注意:static_cast不能转换掉expressionconst、volitale、或者__unaligned属性。

举例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值