C++ 强制类型转换

1,dynamic_cast;

2,const_cast;

3,static_cast;

4,reinterpret_cast

 

1.static_cast


static_cast用来进用行比较“自然”和低风险的转换,比
如整型和实数型、字符型之间互相转换

static_cast不能来在不同类型的指针之间互相转换,也不
能用于整型和指针之间的互相转换,也不能用于不同类型的
引用之间的转换。

 

2,reinterpret_cast

reinterpret_cast用来进行各种不同类型的指针之间的转换、不同
类型的引用之间转换、以及指针和能容纳得下指针的整数类型之间
的转换。转换的时候,执行的是逐个比特的拷贝。

例如:可以将指针类型转换为足以存储指针表示的整型,但不能将指针转换为更小的整型或浮点型。

另一个限制是,不能将函数指针转换为数据指针,反之亦然。

 

 

3,const_cast

用来进行去除const属性的转换。将const引用转换成同类型的非
const引用,将const指针转换为同类型的非const指针时用它。例如:

 

 

4,dynamic_cast

dynamic_cast专门用于将多态基类的指针或引用,强
制转换为派生类的指针或引用,而且能够检查转换的
安全性。对于不安全的指针转换,转换结果返回NULL指针。

dynamic_cast不能用于将非多态基类的指针或引用,
强制转换为派生类的指针或引用。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值