C++显式转型

类型转换(将expression转换为type_id类型)使用场合
static_cast< type_id>(expression)主要用于非多态类型之间的转换,不提供运行时的检查来确保转换的安全1、用于类层次结构中,基类和子类之间指针和引用的转换;进行上行转换,也就是子类->父类,这种转换是安全的;下行是不安全的;2、用于基本数据类型的转换,如int转换为char等,这种转换也不安全3、用于将void指针转换为目标类型指针,极其不安全的
dynamic_cast< type_id>(expression)type_id必须是类的指针或引用或void*;如果type_id是指针,则expression必须是指针,如果type_id是引用,则expression必须是引用主要用于类层次之间的上行和下行转换,还可用于类之间的交叉转换。在上行转换时,dynamic_cast同static_cast,下行时dynamic_cast具有类型检查功能,比static_cast安全。在多态类型之间的转换主要使用dynamic_cast
const_cast< type_id>(expression)用来将类型的const,volatile,和_unaligned属性移除。你不能直接对非指针和非引用的变量使用const_cast操作符直接移除其的const,volatile,和_unaligned属性常量指针被转换成非常量指针,并且仍然指向原来的对象;常量引用被转换为非常量引用,并且仍然引用原来的对象
reinterpret_cast< type_id>(expression)主要用于将一种数据类型从一种类型转换为另一种类型。可以将一个指针转换成一个整数,也可以将一个整数转换成一个指针;允许将任何指针类型转换为其它的指针类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值