目录

官方解析

博主栗子


官方解析

Run-Time Type Information解析

Run-time type information (RTTI)运行时类型信息是一个运行机制,这个机制是在程序执行期间要明确一个对象的类型。RTTI在C++中被使用的原因是许多类或者框架实现了很多功能,这就会造成类库间的不兼容。因此,RTTI解决了在语言层面上类库兼容问题。

RTTI几乎都是针对限制于指针问题。然而,讨论的概念也适用于引用。

RTTI在C++中主要的三种情况:
1.dynamic_cast操作符:使用多态类型的转换;
2.typeid操作符:用于识别这个类的具体类型;
3.type_info类:用于保护typeid这个操作符返回后的类型信息;

博主栗子

源码一:

#include <iostream>
using namespace std;class Base {
public:void print() {cout << "Base print() called!\n";}
};class Child :public Base {
public:void print() {cout << "Child print() called!\n";}
};void main() {Child *child = new Child;child->print();Base *base = dynamic_cast<Child*>(child); //or use it in this way//Base *base_2 = child;base->print();getchar();
}

运行截图如下:

源码二:

#include <iostream>
#include <typeinfo>
using namespace std;class Base {
public:void print() {cout << "Base print() called!\n";}
};class Child :public Base {
public:void print() {cout << "Child print() called!\n";}
};void main() {cout << typeid(1).name() << endl;cout << typeid(1.1).name() << endl;cout << typeid(new Base).name() << endl;cout << typeid(*new Base).name() << endl;Child *child = new Child;Base *base = child;cout << typeid(base).name() << endl;cout << typeid(*base).name() << endl;getchar();
}

运行截图如下:

补充:typeid是在编译时期识别的,关于type_info将在以后的博文中给出

Micsorft文档阅读笔记-Run-Time Type Information解析及使用相关推荐

  1. Qt文档阅读笔记-FileDialog QML Type官方解析与实例

    目录 官方解析 博主例子 官方解析 FileDialog是基于文件的选择器,可以选择文件或文件夹,创建文件,这个Dialog初始化是不可见的,得需要设置他为visible或调用open()即可. 下面 ...

  2. Qt文档阅读笔记-TextEdit QML Type官方解析及实例

    目录 官方解析 博主栗子 官方解析 TextEdit展示了一个可编辑的一块,是有格式的文本. 他同样能展示普通文本和富文本: TextEdit {width: 240text: "<b ...

  3. Qt文档阅读笔记-Text QML Type官方解析及实例

    目录 官方解析 博主例子 官方解析 Text能够展示纯文本和富文本.举个例子,红色文本以及指定的字体和大小 Text {text: "Hello World!"font.famil ...

  4. Qt文档阅读笔记-Label QML Type官方解析及实例

    目录 官方解析 博主例子 官方解析 Label扩展了父类Text中的styling和font.Label同样是有可视化的background项. Label {text: "Label&qu ...

  5. Qt文档阅读笔记-Button QML Type官方解析及实例

    目录 官方解析 博主栗子 官方解析 按钮展示了一个按钮控件,这个控件可以被用户所按下,按钮是通常被用于执行一个操作,或者解决一个问题.buttons有如下几个典栗,如Ok,Apply,Cancel,C ...

  6. Qt文档阅读笔记-Timer QML Type 官方解析与实例

    目录 官方解析 博主例子 官方解析 Timer能够触发一个动作,或者在给定时间重复这个动作: 下面给出显示当前时间的代码,500毫秒刷新异常,这里是通过JS对象来获取当前时间! import QtQu ...

  7. Qt文档阅读笔记-Fortune Client Example实例解析

    目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...

  8. Qt文档阅读笔记-QML Canvas的官方解析及实例

    目录 官方解析 博主例子 官方解析 Canvas可以用于画直线或曲线,简单或复杂的形状,图形,图片,并且他能加文字,颜色,阴影,和颜色梯度,和其他的装饰,可以进行低像素操作.Canvas可以保存成图像 ...

  9. Qt文档阅读笔记-Qt Core的官方解析

    Qt Core 目录 Getting Started Threading and Concurrent Programming Input/Output, Resources, Containers ...

最新文章

  1. 解决ajax劫持,Ajax实现检测网站劫持的方法
  2. 中采购订单批导的bapi_跟着团子学SAP PS—项目中的物料组件
  3. [专栏目录]-环境搭建安装问题笔记目录
  4. js模板引擎_VueSSRNuxt.js
  5. Tomcat类加载器为何违背双亲委派模型
  6. Git笔记(18) 搭建服务器Git
  7. 拳王虚拟项目公社:闲鱼知乎引流售卖虚拟资源的虚拟兼职副业项目实操
  8. 查看数值类型python_Python数据科学实践 | 数据类型
  9. 唐僧给李世民的取经汇报
  10. python中常用的模块_Python中常用的模块
  11. python爬虫 导出/乱码/中英文夹杂问题解决
  12. 赚大钱的生意都是陌生人生意,熟人生意都是赚小钱
  13. Sentieon软件应用之浅层测序分析
  14. 序列化Serializable serialVersionUID的作用
  15. matlab数值微分与数值积分
  16. 2020年教师资格证考试课件百度云网盘地址分享
  17. Java基础之入门(一)
  18. Excel单元格格式设置——日期型切换语种
  19. python 数字+.的含义
  20. Lichee(二) 在sun4i_crane平台下的编译

热门文章

  1. Linux的vi命令
  2. 深圳不完全启示录之初来乍到----1
  3. 《飞秋下载》介绍过的求伯君,看看!
  4. 如何隐藏win32 console application的console窗口
  5. 教你一招轻松入门python,不收藏等于错失了一个亿!
  6. 一个顶级程序员要多久才能独自写完Win10代码?
  7. python找图里的环_python判断无向图环是否存在的示例
  8. 推荐我们在B站免费的转录组课程|测序原理,GO/GSEA/WGCNA
  9. python数据结构之链表_Python数据结构之翻转链表
  10. NOI入门级:排序算法