当前位置: 首页 > article >正文

深度探索c++对象模型-31-RTTI与存储位置简介

一、RTTI(Run Time Type Identification)是什么:运行时类型识别

通过运行时类型识别,程序能够使用基类或者引用来检查这些指针或者引用所指的对象的实际派生类型。

RTTI我们可以把这个称呼看成是一种系统提供给我们的一种能力,或者一种功能。这种功能或者能力是通过2个运算符来体现:
(1)dynamic_cast运算符:能够将基类的指针或者引用安全的转换为派生类的指针或者引用。
(2)typeid运算符:返回指针或者引用所指对象的实际类型

要想让RTTI的两个运算符能够正常工作,那么基类中必须至少要有一个虚函数,不然这两个运算符工作的结果接可能跟我们预期的不一样。因为只有虚函数的存在,这两个运算符才会使用指针或者引用所绑定的对象的动态类型(你new的类型)

二、dynamic_cast运算符

看如下代码:

class A
{
   
public: 
	int a;
	A()
	

http://www.kler.cn/a/6326.html

相关文章:

  • ubuntu22.04上安装win10虚拟机,并采用noVNC+frp,让远程通过web访问桌面
  • OSI 网络 7 层模型
  • EasyExcel 模板+公式填充
  • NI GPIB通讯错误码含义
  • chrome浏览器id值预览后发生改变
  • VS2022 中的 /MT /MTd /MD /MDd 选项
  • 计算机基本知识扫盲(持续更)
  • 一个令人惊艳的ChatGPT项目,开源了!
  • SpringBoot-核心技术篇
  • STM32G431-基于HAL库(第十四届蓝桥杯嵌入式模拟题2)
  • 【面试】一千万的数据你是怎么查询的?
  • MongoDB - 聚合查询
  • 【Python】【进阶篇】四、Python爬虫的URL编码/解码
  • 【c++】:“无敌的适配器来咯“栈和队列模拟实现以及优先级队列的模拟实现。
  • package XXX is not in GOROOT (C:\Program Files\Go\src\XXX)
  • SQL——数据定义DDL
  • 【@ConditionOnBean】
  • [linux]基础IO
  • [课程][原创]yolov7目标检测封装成类调用
  • 手写vuex4源码(二)组件install逻辑
  • Android ART虚拟机 GC的各种类型
  • 分享一个国内可用的免费ChatGPT网站
  • 15_I.MX6ULL_LCD显示原理
  • [C++]类与对象上篇
  • DFSBFS总结
  • 《高等工程数学》习题卷(一)