RTTI
概念:
RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检
查着这些指针或引用所指的对象的实际派生类型。
原因:
C++是一种静态类
型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的
要求,C++中的指针或引用(Reference)本身的类型,可能与它实际代表(指向或引用)的类型并不一致。
有时我们需要将一个多态指针转换为其实际指向对象的类型,就需要知道运行时的类型信息,这就产生
了运行时类型识别的要求。
在C++中为了支持 RTTI 提供了两个操作符:
查询类型的信息, 类型。它指出指针或引用指向对象的实际派生类型。
dynamic_cast 和 typeid 操作符的操作数的类型 ,必须是带有一个或多个虚拟函数的类类型。 即对于 带有虚拟函数的类而言 RTTI 操作符是运行时刻的事件 ,而对于其他类而言,它只是编译时刻的事件。
1.typeid
C++顶层const和底层const
举例:
####所有情况下, typeid 都忽略顶层的 cv 限定符 。
eg: 继承+多态:运行时开销
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。