第六十六课 C++中的类型识别
一、类型识别
-
静态类型
变量(对象)自身的类型
-
动态类型
指针(引用)所指向对象的实际类型
-
基类指针是否可以强制类型转换为子类指针取决于动态类型
二、C++ 如何得到动态类型
- 在基类中定义虚函数返回具体的类型信息
- 所有派生类都必须实现类型相关的虚函数
- 每个类中的类型虚函数都需要不同的实现
三、类型识别关键字
- C++ 提供了 typeid 关键字用于获取类型信息
- typeid 关键字返回对应参数的类型信息
- typeid 返回一个 type_info 类对象
- 当 typeid 的参数为 NULL 时抛出异常
四、小结
- C++ 中有静态类型和动态类型的概念
- 利用多态能够使下对象的动态类型识别
- typeid 是专用于类型识别的关键字
- typeid 能够返回对象的动态类型信息