编程语言导论/强制类型转换
外观
< 编程语言导论
许多编程语言支持将一个值转换为另一个不同数据类型的值。这种类型的转换可以是隐式或显式的。隐式转换,也称为强制类型转换,是自动完成的。显式转换,也称为强制转换,由代码指令执行。此代码将一个数据类型的变量视为属于另一个数据类型。支持隐式转换的语言定义了在涉及基本兼容值时将自动应用的规则。下面的 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);
}