评论

收藏

[C++] C++强制类型转换

编程语言 编程语言 发布于:2021-07-06 09:49 | 阅读数:272 | 评论:0

  
  强制类型转换

  • 命名强制类型转换 cast-name(expression)


    • static_cast
    • const_cast
    • reinterpret_cast
    • dynamic_cas



  命名强制类型转换 cast-name(expression)
static_cast
  只要不包含底层const,都可以使用。适合将较大算术类型转换成较小算术类型

const_cast
  ​只能改变底层const,例如指向const的指针(指向的对象不一定是常量,但是无法通过指针修改)​,如果指向的对象是常量,则这种转换在修改对象时,结果未定义。

reinterpret_cast
  通常为算术对象的位模式提供较低层次上的重新解释。如将int转换成char。很危险!

dynamic_cas
  一种动态类型识别。转换的目标类型,即type,是指针或者左右值引用,主要用于基类指针转换成派生类类型的指针(或引用),通常需要知道转换源和转换目标的类型。如果​​转换失败,返回0(转换目标类型为指针类型时)或抛出bad_cast异常(转换目标类型为引用类型时)
  

  
关注下面的标签,发现更多相似文章