运行时类型信息

运行时类型信息 (RTTI) 是一种允许在程序执行过程中确定对象的类型的机制。 RTTI 已添加到 C++ 语言中,因为许多类库供应商将自行实现此功能。 这会导致库之间出现不兼容的情况。 因此,显而易见的是,需要语言级别的对运行时类型信息的支持。
有三个针对运行时类型信息的 C++ 语言元素:

元素 作用
dynamic_cast 运算符 用于多态类型的转换。
typeid 运算符 用于标识对象的确切类型。
type_info 类 用于保留由 typeid 运算符返回的类型信息。

两种主流的内存布局

Structure-of-an-Itanium-C-ABI-vtable

RTTI Internals in MSVC

RTTI Internals相关推荐

  1. C++ Internals: VC RTTI - dynamic_cast (2)

    返回目录 下面进入正题,让我们见识一下 dynamic_cast到底是如何实现的.首先,在你调用 dynamic_cast之前,编译器会帮你进行语法检查.如果指针的静态类型和目标类型相同,那么就什么事 ...

  2. RTTI(三)相关函数1【转自大富翁】

    第三部分RTTI相关函数 GetTypeData 函数 GetPropInfo 函数 FindPropInfo 函数 GetPropInfos 函数 SortPropList 函数 GetPropLi ...

  3. [整理] - Relational Engine之UMS Internals

    SQL Server 6.5使用Windows的调度处理管理多线程,和其它Windows应用程序一样,它使用Windows标准API,没有用到任何隐藏API,这使得 SQL Server的工作线程同其 ...

  4. 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)

    <Microsoft Sql server 2008 Internals>读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397 ...

  5. Oracle DSI(Data Server Internals) 下载说明

    DSI是Data Server Internals的缩写,是Oracle公司内部用来培训Oracle售后工程师使用的教材. DSI3是Oracle 8系列的, DSI4是Oracle 9系列的. 这样 ...

  6. 《Pro SQL Server Internals》部分翻译(P155-165)

    本文选自<Pro SQL Server Internals> 作者: Dmitri Korotkevitch 出版社: Apress 出版年: 2016-12-29 作者简介:Dmitri ...

  7. 关闭Delphi的RTTI

    {$IF CompilerVersion >= 21.0} {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELD ...

  8. .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)

    引言 随着CPU多核的普及,编程时充分利用这个特性越显重要.上篇首先用传统的嵌套循环进行数组填充,然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Clas ...

  9. c++ RTTI(运行时类型识别)

    通过RTTI,能够通过基类的指针或引用来检索其所指对象的实际类型.c++通过下面两个操作符提供RTTI. (1)typeid:返回指针或引用所指对象的实际类型. (2)dynamic_cast:将基类 ...

最新文章

  1. 数字签名与数字证书是什么
  2. ZH奶酪:Ionic通过angularJS+tabs-item-hide实现自定义隐藏tab
  3. 实现AIDL接口的Binder连接池
  4. zigbee 协议栈数据类型及转换
  5. 使用logstash将Mysql中的数据导入到ElasticSearch中(详细步骤,win_Elasticsearch)
  6. 10个值得关注的优秀CSS框架
  7. 客户端配置_交换机作为STelnet客户端登录其他设备配置示例
  8. @JsonInclude、@JsonIgnore和@JsonFormat注解
  9. Ubuntu之更新CMake的版本
  10. 模式匹配和正则表达式_python
  11. Nginx服务器中的Socket切分,需要的朋友可以参考下
  12. 惠普HP Deskjet D1530 打印机驱动
  13. 企业如何软件商业化? .
  14. Blue Coat让企业在降低风险的同时利用网络应用程序
  15. 服务器如何修改vt,如何设置VT?
  16. 软件硕士和计算机硕士,详解软件工程硕士和计算机硕士区别
  17. 计算机 复杂度符号 英语 怎么读,~!#$%^*这些符号怎么读? 当然是用英语(键盘特殊符号小结)...
  18. 【毕业设计】 基于单片机的移动共享充电宝设计与实现 - 物联网嵌入式 stm32 c51
  19. Http协议之301,302和307
  20. python中的多任务-多线程和多进程

热门文章

  1. 通俗易懂VS项目中的web config配置文件
  2. C语言中指数的表示形式
  3. 【剑指offer】替换空格 -- Java 实现
  4. MATLAB截取图像特定区域
  5. 用python玩转数据第四周答案_大学mooc用Python玩转数据答案搜题公众号
  6. [BZOJ]2460: [BeiJing2011]元素 线性基+贪心
  7. oak深度相机入门教程-识别头部的姿势
  8. echarts自定义描绘地图和修改地图
  9. linux安装tomcat 并配置环境变量
  10. 小米13Ultra手机参数配置详情介绍:屏幕处理器镜头规格好吗?