关键字
reinterpret_cast
- reinterpret_cast运算符是用来处理无关类型之间的转换;
- reinterpret_cast用在任意指针(或引用)类型之间的转换;以及指针与足够大的整数类型之间的转换;从整数类型(包括枚举类型)到指针类型,无视大小。
- const char* p1 = < reinterpret_cast> const unsigned char* p2;
static_cast
1.static_cast 运算符完成相关类型之间的转换. 而 reinterpret_cast 处理互不相关的类型之间的转换.
const_cast
1.const_cast 用来移除 const
dynamic_cast
1.dynamic_cast 需要 RTTI 支持, 主要用于把基类指针转换为派生类指针.这里的基类指针其实是指向一个派生类实例,只是类型为基类.A *ptrA = new class B; B *ptrB = dynamic_cast<B*>(ptrA);