测试环境
mac m1
Apple clang version 13.0.0 (clang-1300.0.29.30)
#include <iostream>
#include <typeinfo>using std::cout;
using std::endl;class Base{};
class Sub : public Base {};class Base1{public:virtual ~Base1() {}
};class Sub1 : public Base1 {};int main() {int a;cout << "int a typeid name " << typeid(a).name() << endl;bool b;cout << "bool b typeid name " << typeid(b).name() << endl;char c;cout << "char c typeid name " << typeid(c).name() << endl;double d;cout << "double d typeid name " << typeid(d).name() << endl;float f;cout << "float f typeid name " << typeid(f).name() << endl;Base base;cout << "Base base typeid name " << typeid(base).name() << endl;Sub sub;cout << "Sub sub typeid name " << typeid(sub).name() << endl;Base & base_ = sub;cout << "Base & base_  typeid name " << typeid(base_).name() << endl;Base* pbase = &sub;cout << "Base* pbase typeid name " << typeid(pbase).name() << endl;cout << "(*pbase) typeid name " << typeid(*pbase).name() << endl;Base1 base1;cout << "Base1 base1 typeid name " << typeid(base1).name() << endl;Sub1 sub1;cout << "Sub1 sub1 typeid name " << typeid(sub1).name() << endl;//含有虚函数时 能够识别真实类型Base1 & base1_ = sub1;cout << "Base1 & base1_ typeid name " << typeid(base1_).name() << endl;Base1 * pbase1 = &sub1;cout << "Base1 * pbase1 typeid name " << typeid(pbase1).name() << endl;cout << "*pbase1 typeid name " << typeid(*pbase1).name() << endl;}
结果输出
int a typeid name i
bool b typeid name b
char c typeid name c
double d typeid name d
float f typeid name f
Base base typeid name 4Base
Sub sub typeid name 3Sub
Base & base_  typeid name 4Base
Base* pbase typeid name P4Base
(*pbase) typeid name 4Base
Base1 base1 typeid name 5Base1
Sub1 sub1 typeid name 4Sub1
Base1 & base1_ typeid name 4Sub1
Base1 * pbase1 typeid name P5Base1
*pbase1 typeid name 4Sub1
小结
当基类中存在虚函数时,引用或者指针解引用 能够识别出真实类型

C++ typeid 不同类型打印 name相关推荐

  1. C++ typeid输出类型

    在c++中,typeid用于返回指针或引用所指对象的实际类型 std::vector<Box> faces; for(auto face : faces){ //C++11新增加for循环 ...

  2. 将输出结果以json类型打印在控制台上_系列文章:Kubernetes中日志的正确输出姿势...

    前言 上一期主要和大家介绍从全局维度考虑如何去构建K8s中的日志系统,本期我们从实践角度出发来一步步构建K8s中的日志监控体系.构建日志系统的第一步是如何去产生这些日志,而这也往往是最繁杂最困难的一步 ...

  3. 函数指针实现无类型打印

    #include<stdio.h> void MyInt(void const *ar,int size) {size/=4; //int 一次打印4字节int const *p=(int ...

  4. c打印无符号整数_C语言的7种整数类型

    1.int类型 C语言提供了许多整数类型,为什么一种类型不够用?因为C语言让程序员针对不同情况选择不同的类型.特别是,C语言中的整数类型可表示不同的取值范围和正负值.一般情况使用int类型即可,但是为 ...

  5. 白话C++系列(27) -- RTTI:运行时类型识别

    http://www.cnblogs.com/kkdd-2013/p/5601783.html RTTI-运行时类型识别 RTTI:Run-Time Type Identification. 那么RT ...

  6. C++ 关键字 typeid, typename

    类型标识符(typeid) 标准C++的一个新特征是RTTI(Run-Time Type Information运行时类型信息),它为程序在运行时确定对象类型,提供了一种标准方法.在标准C++中,有三 ...

  7. GO语言编程基础-复合类型结构体

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 1 结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然 ...

  8. 【Groovy】闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )

    文章目录 一.闭包定义 二.闭包类型 三.查看编译后的字节码文件中的闭包类型变量 一.闭包定义 闭包 Closure 是 Groovy 中最常用的特性 , 使用闭包作为参数是 Groovy 语言的明显 ...

  9. C++-运行时类型信息,异常(day11)

    一.运行时类型信息 1.typeid运算符 头文件:#include<typeinfo> C++的标准头文件,都对应相应的类 //sizeof(类型/变量/表达式),返回内存大小 type ...

最新文章

  1. 部署 H3C CAS E0306
  2. 面向Java程序员的20大Spring REST面试问题答案
  3. react学习(59)--this.props语法糖
  4. c语言二进制数怎么表示_搞懂这些公式和原理,二级C语言对你来说肯定会简单很多!...
  5. NumPy Beginner's Guide 2e 带注释源码 三、熟悉 NumPy 常用函数
  6. 数据可视化过程中常见的错误类型
  7. 【MATLAB】MATLAB基本运算
  8. 根据数据生成excel、二维码并压缩zip并下载
  9. 智能汽车“增量部件”争夺战(一):以华为海思为样榜,比亚迪蔚来们的漫漫造芯路
  10. 简单例子学习理解Rough Set的范畴概念
  11. KY261 Jugs
  12. 【Android】安卓四大组件之内容提供者
  13. 智慧屏新品尝鲜:精致机身旗舰声画
  14. 心理学家:当你发现这三个现象,说明有人正在欺骗你,句句很真实
  15. TMC电机驱动芯片使步进电机的更好用
  16. Undefined/Null/Boolean数据类型
  17. HashMap1.7 扩容时产生死链
  18. Program received signal SIGSEGV, Segmentation fault.
  19. 认识新华三官网官网下载网络模拟器HCL的安装了解HCL
  20. 浅析深度学习中优化方法

热门文章

  1. .ds_store漏洞泄露
  2. GIS空间分析 三维分析3 要素三维可视化
  3. 【校园二手物品交易平台】
  4. 双因素认证的解决方案
  5. Java后端接口开发详细教程
  6. 左神算法4.二叉树及相关习题理解
  7. CNCC2020_贾志豪_Automated Discovery of Machine Learning Optimizations
  8. git 如何压缩多个commits 成一个commit
  9. android 地址转译,Android URLEncoder 转译中文
  10. android 自定义flowlayout,Android 流式布局FlowLayout 实现关键字标签