跳转到内容

编程语言导论/强制类型转换

来自维基教科书,开放的书籍,为开放的世界

强制类型转换

[编辑 | 编辑源代码]

许多编程语言支持将一个值转换为另一个不同数据类型的值。这种类型的转换可以是隐式或显式的。隐式转换,也称为强制类型转换,是自动完成的。显式转换,也称为强制转换,由代码指令执行。此代码将一个数据类型的变量视为属于另一个数据类型。支持隐式转换的语言定义了在涉及基本兼容值时将自动应用的规则。下面的 C 代码演示了隐式和显式强制类型转换。在第 2 行中,int 常量 3 在赋值之前自动转换为 double(隐式强制类型转换)。通过用括号包含目标类型来执行显式强制类型转换,这在第 3 行中完成。

double x, y;
x = 3;            // implicitly coercion (coercion)
y = (double) 5;   // explicitly coercion (casting)

当允许执行隐式或显式参数强制类型转换时,一个函数被认为是多态的。如果对操作数也是有效的,则相关运算符被认为是多态运算符。下面,一段 C++ 代码示例了这些多态表达式。

#include <iostream>
void f(double x) {     // polymorphic function
  std::cout << x << std::endl;
}

int main() {
  double a = 5 + 6.3;  // polymorphic operator
  std::cout << a << std::endl;

  f(5);
  f((double) 6);
}

重载 · 参数多态性

华夏公益教科书