【发布时间】:2014-01-05 06:31:07
【问题描述】:
我在阅读 Bjarne Stroustrup 的《The C++ Programming Language》来学习 C++ 时遇到了以下段落:
static_cast运算符在相关类型之间进行转换,例如在同一类层次结构中将一种指针类型转换为另一种,将整数类型转换为枚举,或将浮点类型转换为整数类型。reinterpret_case处理不相关类型之间的转换,例如整数到指针或指向不相关指针类型的指针。
对我来说,不清楚是什么决定了任何两个给定类型相关或不相关,并且提到的示例似乎并不详尽。
Stroustrup 说类型分为 1.算术类型 2.用户定义类型和 3.内置类型,从上面的例子中,他认为算术类型(int)与用户定义类型有关(枚举)。将浮点类型转换为 int 很明显,因为它们都是算术类型。
但是,他将两个根据他的定义应该都是内置类型的指针分类为不相关的。
那么我们所说的“两种类型是相关的(不相关的)”到底是什么意思呢?
【问题讨论】:
-
阅读“更有效的 C++ ~ Scott Meyers” 第 2 项
标签: c++