C++中4个与类型转换相关的关键字

本文介绍了C++中的四种类型转换关键字:static_cast, reinterpret_cast, dynamic_cast 和 const_cast 的使用场景及特点。static_cast 用于基本类型间的转换;reinterpret_cast 用于相关或不相关的类型间转换,但使用需谨慎;dynamic_cast 主要用于派生类和基类间的转换,并在运行时检查类型;const_cast 用于去除类型的const或volatile属性。

C++中4个与类型转换相关的关键字,分别是static_cast,reinterpret_cast,dynamic_cast,const_cast

 

其中static_cast用于相关联的类型转换,即内置的基本类型,如Int转成double类型等

reinterpret_cast用于相关或不相关类型转换,如指针与指针之间或整型与指针之间等(尽量少用,不安全)

dynamic_cast 可以用于派生类和基类之间的转换,不能用于内置类型转换。因为它不是在编译时转换(其他三种是)而是在运                        时转换,这是由于运行时需要检查类型信息,而这个信息存储在类的虚函数表中。    

const_cast可以用于去掉const或volatile的转换。简单来说就是只能实现同种类型的转换,作用是改变它const属性或volatile属性

volatile:防止编译器对代码进行优化.

比如如下代码:

a=1;

a=2;

a=3;

a=4;

对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器却会对上述四条语句进行优化,认为只有a=4(即忽略前三条语句,只产生一条机器代码)。如果键入volatile,则编译器会逐一的进行编译并产生相应的机器代码(产生四条代码).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值