reinterpret_cast和C风格的演员之间有什么区别?

时间:2014-04-10 21:39:16

标签: c++ casting

有什么区别:

double x = 10.3;
int y;
y = (int) x;    // c-like cast notation

并且:

double x = 10.3;
int y;
y = reinterpret_cast<int>(x)   

1 个答案:

答案 0 :(得分:3)

C风格的演员表可以是以下任何类型的演员表:

  • const_cast
  • static_cast
  • static_cast后跟const_cast
  • reinterpret_cast
  • reinterpret_cast后跟const_cast

该列表中的第一个可以完成的是C风格演员表演的内容(来自C ++ 03 5.4:&#34;显式类型转换(演员表示法)&#34;

所以对你的例子来说:

double x = 10.3;
int y;
y = (int) x;

使用的演员类型是static_cast

y = reinterpret_cast<int>(x);不会编译。