C++语言级别的类型转换

C++语言级别的类型转换,第1张

文章目录
  • 一、const_cast
  • 二、static_cast
  • 三、reinterpret_cast
  • 四、dynamic_cast


一、const_cast

把常量属性去掉的类型转换
const_cast只能去除const限制,其他的类型不能转换,const_cast只能用于指针或引用
 

二、static_cast

提供编译器认为安全的类型转换(没有任何关联的类型之间不允许转换),编译时期的类型转换。
 

三、reinterpret_cast

类似于C风格的强制类型转换(不一定安全)
 

四、dynamic_cast

主要在继承结构中,可以支持RTTI类型识别转换(运行时期的类型转换)用法如下(首先有如图所示继承结构):

//存在一个A类型的指针变量p,但是我们不知道p指向的对象到底时B类还是C类
C* pc = dynamic_cast<C*>(p);
//以上语句的功能是,判断p指向的对象是否是C类,如果是,就返回对象指针,如果不是就返回nullptr

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/875912.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存