类性强制转换
不相干的类对象间的转换不可实现。
static_cast
用于没有virtual的类对象的向下转换及基础类型间的转换
const_cast
只用于临时删除常量性
dynamic_cast和typeid
typeid必须引入<typeinfo>
只用于指针对象间的转换
用于RITT,有virtual的类对象的向下和向上转换,如果失败会有异常:bad_cast
如:
try
{
Test *a;
subTest *b;
b = dynamic_cast(a);
}
catch(bad_cast&)
{
cout<<”eror”;
}
reinterpret_cast
用于不同类型的对象指针间的转换