c++ typeid使用

2023-11-07

今天用了下c++ typeid这个操作符记录一下:

class parent
{
void getdata()
{}
// virtual void deal()
// {}
};
class son:public parent
{

};

int main()
{
parent *pa =new son(); //pointer
son data;
parent& ref =data; //refer

std::cout<<typeid(parent *).name()<<std::endl;
std::cout<<typeid(son *).name()<<std::endl;
 std::cout<<typeid(ref).name()<<std::endl;

std::cout<<(typeid(parent*)==typeid(pa))<<std::endl;
std::cout<<(typeid(ref)==typeid(parent))<<std::endl;

 std::cout<<(typeid(*pa)==typeid(parent))<<std::endl;

std::cout<<(typeid(void*)==typeid(pa))<<std::endl;
return 0;

}

  1. 当父类中不包含虚函数时结果:
    P6parent
    P3son
    6parent
    1
    1
    1
    0

  2. 当父类中包含虚函数时(取消注释) 执行结果:
    P6parent
    P3son
    3son
    1
    0
    0
    0

说明当在含有虚函数类继承关系中,可以使用指针来判断类型,使用值类型和引用类型,会typeid会返回子类的具体类型

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++ typeid使用 的相关文章

  • 在两个 .cpp 文件之间定义全局变量 [重复]

    这个问题在这里已经有答案了 如何在 A cpp 和 B cpp 之间共享 全球化 bool 变量 其中它们都不包含其他 h 文件 他们有其他联合头文件 但彼此没有 我可以在这些共享标头中定义全局变量吗 Thanks 我可以在这些共享标头中定
  • 何时对向量进行归一化?

    我正在学习 XNA 并且在几乎所有的教育套件中都可以找到http creators xna com en US http creators xna com en US 我总是看到向量上对 Normalize 的调用 我知道归一化基本上将向量
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • 浏览器收集哪些值作为回发数据?

    当页面被发送回服务器时 浏览器收集每个控件的当前值并将其粘贴到一个字符串中 然后 该回发数据通过 HTTP POST 发送回服务器 Q1 除了控件的 Text 属性和 SelectedIndexchanged 因此除了用户输入数据 之外 控
  • 禁用除滚动之外的 DataGridView

    我如何配置 datagridview 以便用户只能在行中移动并使用滚动 而没有其他 如果我禁用网格不允许我使用滚动 将您的 datagridview 设置为只读 这将禁用任何编辑 dataGridView1 ReadOnly true 在你
  • TestMethod:异步任务 TestSth() 不适用于 .NET 4.0

    我正在尝试使用 NET 4 0 BCL Async 和 MsTest 运行异步测试方法 看来这个设置不能处理 测试方法 异步Task测试Sth 由于测试用例资源管理器中缺少条目 将签名更改为异步后void 我可以运行测试用例 但结果错误 根
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • 我们应该使用 Eval 还是 Databind 事件?

    当使用 Asp Net 并使用 ListView 等控件创建网站时 使用 Eval 命令是一个好习惯吗 还是应该在 databind 事件中填充文字和数据 取决于您是否想在更新事件上写回数据 在这种情况下数据绑定 如果您只想读取该数据 可以
  • 使用 Microsoft Graph 创建用户

    如何使用 Microsoft graph 创建用户 因为我在保存过程中遇到了权限失败的问题 我确实有几个问题 在图中调用创建用户 API 将在哪里创建用户 是在 Azure AD 还是其他地方 我尝试通过传递 json 和必需的标头来调用创
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • 在 C# 中生成随机值

    如何使用以下命令生成随机 Int64 和 UInt64 值RandomC 中的类 这应该可以解决问题 这是一个扩展方法 因此您可以像调用普通方法一样调用它Next or NextDouble上的方法Random目的 public stati
  • ASP.NET Web API Swagger(Swashbuckle)重复OperationId

    I have a web api controller like below In swagger output I am having the below image And when I want to consume it in my
  • 如何使用eclipse构建C++应用程序

    我已经从以下位置下载了 Eclipse Juno for C here http www eclipse org downloads download php file technology epp downloads release ju
  • 使 C# 编译器相信执行将在成员返回后停止

    我认为目前这是不可能的 或者这是否是一个好主意 但这是我刚才正在考虑的事情 我使用 MSTest 对我的 C 项目进行单元测试 在我的一项测试中 我执行以下操作 MyClass instance try instance getValue
  • C 中的静态和动态绑定(严格来说是 C,而不是 C++)是什么?

    我最初对发布这个问题感到担忧 以免它重复 但即使在谷歌搜索了许多关键字之后 我在 StackOverflow 上找不到任何解释 C 的静态和动态绑定的链接 尽管有 C 的问题和答案 但是都涉及classes以及显然不适合 C 的东西 Sta
  • Visual Studio 2015默认附加库

    当我在 VS 2015 中创建一个空项目时 它会自动将这些库放入 附加依赖项 中 kernel32 lib user32 lib gdi32 lib winspool lib comdlg32 lib advapi32 lib shell3
  • Crypto++ 和压缩 EC 密钥

    如何在 Crypto 中生成压缩的 ECDSA 密钥 AutoSeededRandomPool prng ECDSA
  • 编译器什么时候内联函数?

    在 C 中 函数仅在显式声明时才内联inline 或在头文件中定义 或者编译器是否允许内联函数 因为他们认为合适 The inline关键字实际上只是告诉链接器 或告诉编译器告诉链接器 同一函数的多个相同定义不是错误 如果您想在标头中定义函
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route
  • C# 中成员访问中的问号是什么意思?

    有人可以向我解释一下以下代码中会员访问中的问号是什么意思吗 它是标准 C 的一部分吗 尝试在 Xamarin Studio 中编译此文件时出现解析错误 this AnalyzerLoadFailed Invoke this new Anal

随机推荐

  • nacos安装和启动(windows)

    nacos官网地址 home 1 搭建java环境 Nacos 依赖 Java 环境来运行 如果您是从代码开始构建并运行 Nacos 需要为此配置 Maven 环境 Windows 安装下载 zap 文件 不需要 Maven 环境 但必须安
  • 在centos7安装theia

    前段时间组装了一台主机 用来充当服务器主机 服务器主机选用centos7系统 我顺便在centos安装theia theia是个操作Linux的工具 十分好用 在我写的文章里 在树莓派4b上配置Theia 搭建云端编程 已经介绍了ubunt
  • 关于阿里云服务器ECS与域名的绑定详细过程介绍

    本文简单的介绍下阿里云的虚拟服务器ECS与域名绑定 条件 阿里云服务器 已实名认证域名 域名解析 1进入阿里云管理控制台 云解析DNS 选择需要解析的域名 解析 2添加两条解析 打码的地方添自己服务器的公网IP 添加解析后 需要检查服务的端
  • 注入多个实现类【JAVA】(设计模式之策略模式)项目实际场景【Spring boot】

    文章目录 业务场景 策略模式的概念 代码示例 1 创建一个接口类 2 创建接口类的实现类 3 创建脚手架 box类 4 最后创建一个实现工厂类 MsgBeanFactory 5 测试代码 6 输出结果 总结 业务场景 最近有一个场景消息发送
  • 表格行与列边框样式处理的原理分析及实战应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 韩宇波 导语 table之间的边框存在共用问题 自然而然就存在冲突 既然存在冲突 那么就势必涉及到最后渲染哪一个样式的问题 本文就主要研究当冲突产生时 如何让浏览器按照自己意愿渲
  • 新的开始----

    种一棵树最好的时间就是现在 为什么记录博客呢 因为记不住 如何学 怎么学习编程 利用能利用的时间 学上不会的 补上会了不熟的 攻克看了还是模棱两可的 博客模板 总分总 WWH
  • Qt中QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用

    在Qt中 我们经常会看到 QT BEGIN NAMESPACE class QAction class QMenu class QPlainTextEdit QT END NAMESPACE 这样的方式表达方式 这样做有什么意义呢 只要深入
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 函数变更记录表 function_change

    函数变更记录表 datamart function change 表结构 CREATE TABLE datamart function change function name character varying 200 函数名 new p
  • Linux巡检脚本

    linux巡检脚本 转自 http myit icu index php archives 1634 待测试 bin bash Author Dean Date 2021 11 25 E mail deanmr qq com bin bas
  • Application tried to present modally an active controller

    控制器模态到另一个控制器发生了错误 报错是Application 试图模态到一个活跃的控制器中 第一次模态的时候不会出现问题 第二次发生了问题 也就是说明了第二次模态的视图是活跃状态 没有销毁 查找代码 发现了问题 第一次模态之后 控制器不
  • json-server常见问题

    json server搭建本地测试服务器 mock数据 模拟后台数据 现在基本上都是前后端分离 前端是前端工程师 后端属于后端工程师 但是前后端交互是个必不可少的环节 一般用Ajax进行交互 还需要一些实验数据来支撑 就需要模拟数据 1 v
  • Android第二讲笔记(约束布局ConstraintLayout)

    目录 为什么要使用约束布局ConstraintLayout 约束布局基本属性 约束布局简单使用方法 示例 示例一 仿QQ消息 示例二 仿微信登陆界面 示例三 仿QQ音乐界面 补充 写在最后 ScrollView 滚动布局 示例一 纵向滚动
  • 实测C++变量长度、最小值、最大值

    说明 基本的内置变量类型 bool char wchar t int float double 类型修饰符 signed unsigned short long 环境 win7x64 VS2015 Debugx86 测试结果 补充 doub
  • [1190]如何解决Chrome无法访问ftp的问题

    在最新一次Chrome更新中彻底抛弃ftp协议了 之前可以在搜索栏搜索chrome flags 并将Enable support for ftp Urls设置为Enabled才能访问ftp 但是在Chrome96中直接将修改选项剔除了 这代
  • 珠心算测验-NOIP2014普及t1

    题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术 珠心算训练 既能够开发智力 又能够为日常生活带来很多便利 因而在很多学校得到普及 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法 他随机生成一个正整数集合
  • SpringBoot 项目在Linux服务器上启动、停止脚本(详细)

    SpringBoot 项目在Linux服务器上启动 停止脚本详细 创建脚本 在jar包目录 创建脚本 实际项目只需要修改包名 1 进入可编辑 执行代码 vim xxxxxx sh xxxxxx就是你自己创建的脚本名称 写好后 按下回车后 进
  • C语言

    这篇文章主要和大家分享三种基础的排序算法 冒泡排序 选择排序 快速排序 一 排序问题 1 冒泡排序 冒泡排序的主要思想是通过两两相邻的元素进行比较 通过元素的大小决定是否交换 一趟冒泡排序的结果是一定有一个最大数会排到最后一个元素 因此对n
  • Python中requests包的安装

    在使用pycharm开发的时候 我们经常需要导入一些包 但是这些包 我们事先并没有安装 一个显著的现象就是我们在pycharm中导入一个包时 系统提示不存在 那就是我们没有安装这个包 举一个例子 我在使用pycharm时 需要导入一个req
  • c++ typeid使用

    今天用了下c typeid这个操作符记录一下 class parent void getdata virtual void deal class son public parent int main parent pa new son po