static_cast<type>(expression)
与C风格的类型转换相通,如 int 转 double 等。
const_cast<type>(expression)
用于转换const属性。
dynamic_cast<type>(expression)
涉及继承的类型转换,可向下或横向安全转换。
如:
class a{};
class b : public a{};
b theClass;
a* parent = &theClass;
b* sub = dynamic_cast<b*>(parent);
reinterpret_cast<type>(expression)
强制转换,任何转换都可以,不计后果。