-----------------------------------A Tour of C++-------------------------------------------
---------------------14.2.4类型转换--------------------
1、static_cast:对于合理的、行为良好的转换,例如将基类指针转换为派生类指针,使用此方式。
例如:
Widget* pw = static_cast<Widget*>(pv); //pv是一个void*,应指向一个Widget
2、reinterptert_cast:对于真正糟糕、不可移植的转换,例如将int转换为指针,使用此方式。
例如:
auto dd = reinterpret_cast<Device_driver*>(0xFF00); //0xFF应是指向设备驱动程序的指针
3、const_cast:用来去掉const
例如:
char* pc = const_cast<char*>("Casts are inherently dangerous");
补充:对于类层次结构中的类型转换,优先选择带检查的dynamic_cast(4.5.3)。