欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:977
  2. 浏览总数:11,945,012
  3. 评论:3936
  4. 分类目录:106 个
  5. 注册用户数:6113
  6. 最后更新:2018年12月13日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

C++四种强制类型转换

在C++中一共有四种强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast。除了dynamic_cast是在运行的时候进行类型转换的,其它三种都是在编译期间实现转换的。四种类型的转换介绍如下:

  1. dynamic_cast:只能在继承类对象的指针之间或引用之间进行类型转换,进行转换时,会根据对象的运行时类型信息,判断类型对象之间的转换是否合法。dynamic_cast指针转换失败,可以通过是否为null指针检测;引用转换失败,则抛出一个bad_cast异常。
  2. const_cast:这个类型转换函数用于去除指针变量的常量属性,将它转换为一个对应指针类型的普通变量,反之也可。
  3. static_cast:这个主要用于基本类型之间和具有继承关系的类型之间的转换,这种转换一般会更改变量的内部表示方式,因此它用于指针类型转换,没有太大意义。即使允许指针类型转换,也不及reinterpret_cast解释效率高。
  4. reinterpret_cast:这种类型转换函数将一个类型的指针转换为另一种类型的指针,这种转换不用修改指针变量值数据存放格式,只需在编译时重新解释指针的类型就可以做到,它可以将一个指针值转换为一个整数型,反之不可。
本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【C++四种强制类型转换】(https://www.iteblog.com/archives/197.html)
喜欢 (2)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!