C++从入门到放弃
1. typeid
操作符
- 头文件
#include <typeinfo>
- 使用
typeid(类型/对象);
//返回typeinfo
对象用于描述所作用类型或对象的类型信息 - 注:
1>typeinfo
中包含name()
成员函数,可以字符串形式获取类型信息
2>typeinfo
类支持++
!=
操作符重载,通过他们可以直接进行类型直接的比较;如果类型之间具有多态的继承关系,还可以利用多态的语法特性确定指针或引用的实际目标对象类型
2. dynamic_cast
动态类型转换
- 语法
目标变量 = dynamic_cast<目标类型>(源类型变量);
- 应用场景
主要用于具有多态继承关系父子类指针或引用之间的显示类型转换(向下造型) - 注:
在转换过程中会检查目标对象和期望转换的目标类型是否一致,如果一致会转换成功,否则失败
1>动态转换指针时,不合理会使转换的将指针置为NULL
表示失败;
2>动态转换引用时,不合理会使进程终止抛出bad_cast
异常表示失败