C++--问题26--强制类型转换

C++--问题26--强制类型转换


1.C语言的类型强转

  方式如下: (Type)value/expression
                  就是在变量或者表达式前面加小括号和类型表示类型强转。

2.C++提供了自己特有的四种类型强转

分别如下:

(1)static_cast:

更安全的类型强转, static_cast 它能在内置的数据类型间互相转换,对于类只能在有联系的指针类型间进行转换。

(2)dynamic_cast:

支持 RTTI 类型转换 , 通常在基类和派生类之间转换时使用 ,
表达式 dynamic_cast<T*>(a) 
a 值转换为类型为 T 对象指针。如果类型 T 不是 a 的某个基类型( a 变量的类型或者是a 类型的派生类类型),该操作将返回一个空指针,否则转换成功;
常用于运行时检测a 针指向的对象是否是特定派生类类型的对象。

(3)const_cast:

    表达式 const_cast<T >(a)
    常被用于去除这里 a 变量或表达式的 const 属性, a 的类型就是 T。

(4)reinterpret_cast:

类似 C 的强转,任何指针都可以转换成其它类型的指针,不安全的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值