C强制类型转换.docxVIP

  • 1
  • 0
  • 约1.77千字
  • 约 2页
  • 2023-04-26 发布于上海
  • 举报
C++类型强制转换 四种类型可能很多人都常常忽略就象我一样,但是有时还是比较有用的。不了解的建议看看, 一些机制我也不是十分了解,只是将一些用法写出来让大家看看。 强制转化无论从语法还是语意上看,都是c++中最难看的特征之一。但是基于c 风格的转化的语义的不明确性及其一些潜在问题。强制类型转化最终还是被 c++接受了。 static_cast 运算符号 static_castT(e),stroustrup 让我们可以把它看成隐含转换的显示的逆运算。这个是有一定道理的,基于隐式转化的对象类型我们可以使用 static_cast 转化运算符号。它是静态的检测,无法运行时检测类型,在继承中尤为突出。 reinterpret_cast 运算 主要用于对于类型指针类型的强制转化,some_type* - special_type*这样转化,类型信息可以是不完全的。它允许将任意指针转化到其他类型指针,也允许任意整数类型到任意指针类型转化(BT)。这样导致的结果是极其不安全的,不能安全的应用于其他目的,除非转化到原来类型。 1 使用所有整形可以转化为任意类型的指针(指针是 4 字节的 long 的东东,那么机器就认为同类型就是可以转化) int c; x* p = reinterpret_castx*(c); //x 是自定义的任意类型,当然包括系统类型 2 可以对于任意类型指针之间转化 y*

文档评论(0)

1亿VIP精品文档

相关文档