C++语言
Completion requirements
类型转换
如果你有一个某种类型的变量,但需要在期望另一种类型的情况下使用它,那么你可以进行类型转换。
提升小整数
通常,对于小于 int
的整数类型,机器语言中没有数学运算符。因此,当 bTermA
和 bTermB
都是 unsigned char
时,表达式 bTermA + bTermB
的编译结果会将这两个操作数提升为 int
类型后再进行加法操作。
强制类型转换
数学运算只能应用于两个相同类型的操作数。如果它们不是同一类型,那么其中一个将需要被“强制转换”(如果可能,编译器会自动插入隐式类型转换,将值的表示从一种类型转换为另一种类型)。
类型转换
“类型转换”是手动编写的类型转换表达式。
传统的C程序将类型转换写作 (float)iVar
。
C++程序将类型转换写作 static_cast<float>(iVar)
。
当从基类指针转换为派生类指针时,使用 dynamic_cast<>
而非 static_cast<>
会增加一个运行时检查,如果指向的对象实际上不是该派生类的实例,返回 NULL
。
Last modified: Friday, 17 January 2025, 9:53 PM