文档库 最新最全的文档下载
当前位置:文档库 › C++类型转换

C++类型转换

reinterpret_cast 将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。
static_cast 执行非多态的转换,用于代替C中通常的转换操作。因此,被做为显式类型转换使用。编译器隐式执行任何类型转换都可由static_cast显示完成。其进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。
dynamic_cast 可以在执行期决定真正的类型。如果下行转换是安全的(也就说,如果基类指针或者引用确实指向一个派生类对象)这个运算符会传回适当转型过的指针。如果 下行转换不安全,这个运算符会传回空指针(也就是说,基类指针或者引用没有指向一个派生类对象)。运行时类型检查需要运行时类型信息取自类的虚函数表,所以子类没有虚函数时使用此方式进行下行转换会报编译错误。

const_cast 该运算符用来修改类型的const或volatile属性。

static_cast只能提供编译时的类型安全,而dynamic_cast可以提供运行时类型安全。
static_cast和reinterpret_cast的区别主要在于多重继承。

相关文档
相关文档 最新文档