C++ 四种转换运算符

四种转换运算符

const_cast

const_cast用来移除变量的const限定符或者volatile限定符。
常用于函数传参用到const变量,但是该函数参数是非const类型,需要做一个类型转换,

dynamic_cast

1、该运算符把express转换为type类型,但是type必须是类的指针、引用或者void*
2、如果type-id是类指针类型,那么exdivssion也必须是一个指针,如果type-id是一个引用,那么exdivssion也必须是一个引用。
3、dynamic_cast主要用于类中的上行转换和下行转换,还可以用于类间交叉转换
基类到子类的转换,dynamic_cast有类型检查功能,static_cast更安全。
如果基类有虚函数,使用dynamic_cast将基类转为子类会编译报错。

static_cast

用法 static_cast (express)
该运算符把express转换为type类型,但没有运行时类型检查来保证转换的安全性,主要用法如下:
1、用于基类和子类之间指针或引用的转换子类转为基类是安全的,基类转为子类没有动态类型检查,是不安全的。
2、用于基本数据类型的转换,比如int转为char等,这种转换安全性需要开发人员保证。
3、把空指针转换成目标类型的空指针。
4、把任何类型的表达式转换成void类型。

reinterpret_cast

1、指针和整数之间的转换
2、不通类型的指针、成员指针、引用之间的转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值