-----------------------------------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)。

原文地址:https://www.cnblogs.com/shuxiangguo/p/5665116.html