C++四个新的类型转换

C++通过引进四个新的类型转换操作克服了C风格类型转换的缺点,1.static_cast, const_cast, dynamic_cast和reinterpret_cast

static_cast<type> (expression) 
int i,j;
double result = static_cast<double>(i/j);
不能用static_cast把struct转换成int类型或者把double类型转换成指针类型,另外,static_cast不能从表达式中去除const属性,需要用const_cast
2.const_cast用于类型转换掉表达式的constnes 和volatilenss属性
但是如果试图使用const_cast来完成修改constnes和 volatilenss属性之外的事情,类型转换将被拒接。
3.dynamic_cast用于安全的沿着类的继承关系向下进类型转换,也就是将指向基类的指针或者引用转换成指向其他派生类或者其兄弟类的指针或引用。
4.reinterpret_cast最普通而且用途就是在函数指针类型进行转换,其转换结果几乎都是执行期定义的,使用 reinterpret_cast代码很难移植。

本文整理自more effecvie C++ ITEM02
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值