显式类型转换#

除了标准规定的隐式类型转换, 我们也可以显式地进行类型转换, 这让未来的读者知道, 这个转换是你明确需要的, 而不是一时疏忽.

以下是 C++ 引入的类型转换符, 分别进行不同功能的类型转换: (仅介绍极小的部分)

static_cast(value)表示这是我明确要求的类型转换, 也许会有精度的损失, 但这就是我想要的.

reinterpret_cast(value)表示我要 "打破" C++ 的类型系统, 强制进行类型转换, 并为它的后果负责. 如果不了解其中细节, 很容易出现未定义行为.

写出这一个只是因为会考的 二进制输入输出 需要用到.

dynamic_cast(base)通常用于将类层次的基类有检查地转换为派生类.

dynamic_cast(&base): 如果转换失败, 返回空指针.

dynamic_cast(base): 如果转换失败, 抛出异常.

危险

C 本身也有类型转换, 但没有对功能进行区分, 因而不自带语义且更加危险.

别看: C 类型转换与 C++ 类型转换的关系