C++中的typeid

news2024/11/28 10:49:55

2023年8月10日,周四下午


目录

  • 概述
  • typeid的用法
  • 用法1
  • 用法2
  • 用法3
  • 举例说明

概述

typeid是 C++ 中的运算符,用于获取表达式或类型的运行时类型信息。

它返回一个std::type_info对象,该对象包含有关类型的信息,例如类型的名称。

typeid的用法

用法1

typeid(expression)

expression可以是一个变量、对象、函数调用、类型转换等:

int x = 10;
double y = 3.14;
const char* str = "Hello";

typeid(x);
typeid(y);  
typeid(str); 

用法2

typeid(type)

type可以是一个具体的类型、类型别名或模板参数等:

typeid(int);
typeid(double);  
typeid(const char*); 

用法3

使用 std::type_info::name() 获取类型的名称:

typeid(expression).name()
typeid(type).name()

这将返回一个 const char* 类型的字符串,表示类型的名称。注意,类型的名称是平台相关的,可能具有不同的格式和表示方式。

下面列出了一些常见的typeid根据类型名称返回const char*字符串:

  • int 对应 i
  • char 对应 c
  • float 对应 f
  • double 对应 d
  • bool 对应 b
  • void 对应 v
  • unsigned 对应 j
  • long 对应 l
  • short 对应 s
  • unsigned long 对应 m
  • unsigned short 对应 t
  • const 对应 K
  • volatile 对应 V
  • * 对应 P
  • & 对应 R
  • && 对应 O
  • [] 对应 A
  • () 对应 F

举例说明

#include <iostream>
#include <typeinfo>

void printType(const std::type_info& typeInfo) {
    std::cout << "Type: " << typeInfo.name() << std::endl;
}

int main() {
    int x = 10;
    double y = 3.14;
    const char* str = "Hello";

    printType(typeid(x));    
    printType(typeid(y));  
    printType(typeid(str)); 

    return 0;
}

i对应int

d对应double

P对应*,K对应const,c对应char

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎样学会单片机

0、学单片机首先要明白&#xff0c;一个单片机啥也干不了&#xff0c;学单片机的目的是学习怎么用单片机驱动外部设备&#xff0c;比如数码管&#xff0c;电机&#xff0c;液晶屏等&#xff0c;这个需要外围电路的配合&#xff0c;所以学习单片机在这个层面上可以等同为学习单片…

南大实验pa0:安装环境

安装untubu没问题&#xff0c;但是切到清华软件园之后&#xff0c;问题百出。记录一下 问题1 如上图所示&#xff0c;在安装build-essential的时候出现了问题 The following packages have unmet dependencies:g-11 : Depends: gcc-11-base ( 11.2.0-19ubuntu1) but 11.4.0-1…

杭州企业可以用DV https证书吗

DV https证书是入门级的https证书&#xff0c;也可以叫DV基础型https证书&#xff0c;这款https证书企业是可以用的&#xff0c;甚至商城网站、金融网站都可以使用&#xff0c;不限制申请者&#xff0c;个人或者企事业单位都可以申请。DV基础型https证书虽然只是入门级的https证…

OpenHarmony携千行百业创新成果亮相HDC.Together 2023

8月4日-6日&#xff0c;华为开发者大会2023&#xff08;以下简称“大会”&#xff09;在中国松山湖举办&#xff0c;OpenAtom OpenHarmony&#xff08;简称“OpenHarmony”&#xff09;隆重参会&#xff0c;在大会互动体验区设置了“行业创新展区”&#xff0c;成为大会展区中的…

Debian10:安装PHPVirtualBox

PHPVirtualBox 是一个用 PHP 编写&#xff0c;用于管理 VirtualBox 的 Web 前端&#xff08;由AJAX实现&#xff09;。 参考文章&#xff1a;VirtualBoxPHPVirtualBox部署_骡子先生的博客-CSDN博客php virualbox,浏览器远程控制VBox 虚拟机phpVirtualBox_weixin_39815879的博客…

ctypes使用浅谈

什么是ctypes&#xff1a; ctypes 是 Python 的一个标准库&#xff0c;用于与 C 语言进行交互。它提供了一组工具和函数&#xff0c;可以方便地调用动态链接库&#xff08;DLL&#xff09;或共享对象&#xff08;SO&#xff09;中的 C 函数&#xff0c;并处理 C 数据类型的转换…

探索自动化网页交互的魔力:学习 Selenium 之旅【超详细】

"在当今数字化的世界中&#xff0c;网页自动化已经成为了不可或缺的技能。想象一下&#xff0c;您可以通过编写代码&#xff0c;让浏览器自动执行各种操作&#xff0c;从点击按钮到填写表单&#xff0c;从网页抓取数据到进行自动化测试。学习 Selenium&#xff0c;这一功能…

用普通用户sudo执行ansibe命令

1、编辑/etc/ansible/ansible.cfg 2、hosts文件 3、执行命令 必须加-b选项

无涯教程-Perl - goto函数

描述 该函数具有三种形式,第一种形式使当前执行点跳到称为LABEL的点。这种形式的goto不能用于跳入循环或外部函数。您只能跳至同一范围内的一点。 第二种形式期望EXPR判断为可识别的LABEL。通常,您应该能够使用普通的条件语句或函数来控制程序的执行,因此不建议使用该程序。 …

配置service启动nginx

一.以源码形式安装的nginx&#xff0c;没有nginx.service 二.切换到service配置目录 三.编辑nginx.service文件 四.启动测试 1.我的开始报了这个问题&#xff0c;说没有这个/var/cache/nginx/client_temp目录&#xff0c;直接创建一个就好了 2.开启/关闭 一.以源码形式安装…

【Flutter】【基础】CustomPaint 绘画功能(一)

功能&#xff1a;CustomPaint 相当于在一个画布上面画画&#xff0c;可以自己绘制不同的颜色形状等 在各种widget 或者是插件不能满足到需求的时候&#xff0c;可以自己定义一些形状 使用实例和代码&#xff1a; CustomPaint&#xff1a; 能使你绘制的东西显示在你的ui 上面&a…

Mapbox加载天地图CGCS2000矢量瓦片地图

1.背景 最近在做天地图的项目&#xff0c;要基于MapBox添加CGCS2000矢量切片数据&#xff0c;但是 Mapbox 只支持web 墨卡托&#xff08;3857&#xff09;坐标系的数据。Github有专业用户修改了mapbox-gl的相关代码&#xff0c;支持CGCS2000的切片数据加载&#xff0c;并且修改…

idea添加作者信息

idea添加作者信息 在idea中&#xff0c;经常会有这些波浪纹提示&#xff0c;放在上面之后会提示添加作者信息,点击添加作者信息后&#xff0c;但是不是自己想要的 这里提取的话好像没什么办法修改&#xff0c;可能修改电脑的名称。这样提取出来才是自己需要的 自定义作者信息…

基于Java+SpringBoot+Vue的网上书城管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

CSS:background 复合属性详解(用法 + 例子 + 效果)

目录 background 复合属性background-color 背景颜色&#xff08;纯&#xff09;background-image 背景图片 或者 渐变颜色background-repeat 背景是否重复background-size 设置图片大小background-position 设置背景图片显示位置background-attachment 设置背景图片是否随页面…

软件包管理

一、rpm管理软件包 1、获得rpm的软件包 1&#xff09;去官网安装不推荐 找自己光盘有没有这个包 装好需要的包之后装qq 2&#xff09;去镜像站点&#xff0c;推荐 二、yum/dnf管理软件包 解决软件的依赖关系&#xff0c;可以自动的去服务器下载软件包 1、使用yum软件包 使用…

clion run qt 问题汇总

一、Error copying file “D:/soft/QT/5.15.2/mingw81_64/bin/Qt5Cored.dll” to “D:/work/Ccode/qtproject/cmake-build-debug-qtmingw”.报错 查看路径下确实没有Qt5Cored.dll&#xff0c;只有Qt5Core.dll 注释掉cmakelist中的这三行 重新执行后成功 二、使用CLion编辑u…

【Autolayout案例02-距离四周边距 Objective-C语言】

一、好,来看第二个案例 1.第二个案例,是什么意思呢,第二个案例,要求屏幕中间,有一个UIView UIView,是个红色的UIView UIView的大小,我不限定 但是无论你是什么屏幕下 这个UIView距离上边,始终是50 距离右边,始终是50, 距离下边,始终是50, 距离左边,始终是5…

【运维工程师学习八】代理及安装配置Nginx反向代理

【运维工程师学习八】代理 正向代理一、使用正向代理的主要作用有&#xff1a;二、反向代理三、使用反向代理的主要作用有&#xff1a;四、透明代理五、各种代理的主要区别六、Nginx的安装七、了解nginx的文件位置八、了解nginx程序的命令行参数九、开启nginx反向代理十、解读n…

变频谐振耐压试验装置产品概述及特点

一、产品概述 KDXZ-II 75kVA/75kV串联谐振耐压试验装置主要针10kV电缆及以下电力主变压器、母线开关等所有电气主设备的交流耐压试验设计制造。电抗器采用多只分开设计&#xff0c;既可满足高电压、小电流的设备试验条件要求&#xff0c;又能满足象10kV电缆这样的低电压的交流…