C/C++ 判断一个变量的类型(typeid)

S4HANA - Cost Elements成本要素 SAP这里面的配置逻辑很像,就是先建一个对象,然后不停给这个对象附加一些属性,给一个账户附加编号范围,附加账户组。所有模块的维度都在这个表里,看下图的GL,CO,COPA,AA,ML的都在ACDOCA里。要把这5个类型和六大要素对应,先得把六大要素和账户类型对应下(以下是个人理解,不知道对错):当然那个C是新来的,我觉得放在资产下面也行,就不画图了。S4的嵌入式分析是在业务逻辑都整套嵌入的情况下,预开发了数据模型,所以它能提供的就不仅是原始数据了,它能提供的是包含所有相关联的上下文的信息数据。 阅读详情
AI摘要

这篇博客介绍了C++中typeid关键字的使用方法,通过示例展示了如何判断变量是否为int、string、char、自定义类Student以及double类型。通过多个if-else逻辑判断,确定变量的真实类型,并提供了完整的测试代码进行演示。

当有某一个变量,你不知道他是什么类型,且你有需要知道他是什么类型时,就可以使用typeid关键字进行判断!

操作如下:

  1. 判断int类型

    int in = 10;
    if (typeid(in) == typeid(int)) {
    	cout << "This '" << in << "' is a int!" << endl;
    }
    
  2. 判断类

    // 类
    Student stu("小明");
    if (typeid(stu) == typeid(Student)) {
    	cout << "This '" << stu.name << "' is a Student!" << endl;
    }
    

当然你也还可以 判断其它类型这里就不列举了!

来说说具体改怎么使用:

double dou = 3.14;
if (typeid(dou) == typeid(int)) {
	cout << "This '" << dou << "' is a int!" << endl;
	
} else if (typeid(dou) == typeid(string)) {
	cout << "This '" << dou << "' is a string!" << endl;
	
} else if (typeid(dou) == typeid(double)) {
	cout << "This '" << dou << "' is a double!" << endl;

} else {
	cout << "This '" << dou << "' is not!" << endl;
}

用法如上,使用多个if else做逻辑处理,就可以得到想要的变量是什么类型了!


全部测试代码:

#include <iostream>
#include <string>

using namespace std;

class Student {

public:
	Student(string _name = "无名字") {
		this->name = _name;
	}
	~Student() { }

public:
	string name;
};


typedef struct Struct {
	int count = 10;
};


int main(void) {
	
	// 整形
	int in = 10;
	if (typeid(in) == typeid(int)) {
		cout << "This '" << in << "' is a int!" << endl;
	}
	
	// 字符串
	string str = "abc";
	if (typeid(str) == typeid(string)) {
		cout << "This '" << str << "' is a string!" << endl;
	}

	// 字符
	char c = 'c';
	if (typeid(c) == typeid(char)) {
		cout << "This '" << str << "' is a char!" << endl;
	}

	// 类
	Student stu("小明");
	if (typeid(stu) == typeid(Student)) {
		cout << "This '" << stu.name << "' is a Student!" << endl;
	}

	// 结构体
	typedef struct Struct structs;
	if (typeid(structs) == typeid(Struct)) {
		cout << "This 'structs' is a Struct!" << endl;
	}



	double dou = 3.14;
	if (typeid(dou) == typeid(int)) {
		cout << "This '" << dou << "' is a int!" << endl;
	
	} else if (typeid(dou) == typeid(string)) {
		cout << "This '" << dou << "' is a string!" << endl;
	
	} else if (typeid(dou) == typeid(double)) {
		cout << "This '" << dou << "' is a double!" << endl;

	} else {
		cout << "This '" << dou << "' is not!" << endl;
	}

	return 0;
}

运行截图:
在这里插入图片描述


总结:

用法还是很简单的,不过,我这里只是简单将typeid关键字的其中一个用法列举出来,其实他还有很多其它高级用法, 有兴趣的可以自行去了解了解!

vTestStudio保姆教程之从0到1搭建软件环境 学习HIL测试的必经之路,保姆级教学VT从搭建到测试。 阅读详情

相关推荐

利用 Docker Distribution 搭建私有的 Docker Registry

1、拓扑

weixin_44983653的博客 1067

C++中判断数据的类型

C++中判断数据的类型 在实际的项目中经常要进行数据类型的转换,特别是字符串转成数字或者数字转字符串,而在进行数据类型转换之前要先知道数据的类型。 这时如何判断一个数据的数据类型这个问题就自然而然的遇到了。在本人几次遇到这个问题的情况下,这次来做一个总结。 1.typeid typeid这个函数在头文件typeinfo.h中,在使用这个函数时要加上头文件:#include<...

qq_38502736的博客 4万+

如何利用东南大学齿轮箱数据集进行故障诊断?从数据采集到模型训练全流程解析

本文详细解析如何利用东南大学齿轮箱数据集进行故障诊断,涵盖从数据采集到模型训练的全流程。通过信号预处理、特征工程构建及多种机器学习模型对比,帮助开发者高效实现工业设备健康管理。特别适合希望将AI技术应用于工业场景的Python开发者。

m2n3b4v5c6的博客 375

c++:数据类型的判断type_traits

//判断左值右值引用 void main() { int i(10);//i是左值 有内存实体 int &ri(i); int &&rri(i + 5);//右值引用 cout ::value

SteveRocket's-Blog 3432

保姆级教程:手把手教你从ENSEMBL官网下载GRCh38/GRCh37的GTF注释文件(附网址规律总结)

本文提供从ENSEMBL官网下载GRCh38/GRCh37的GTF注释文件的详细教程,包括路径解析、版本号确定和下载命令示例。特别解析了GRCh37的特殊存储结构,并分享批量下载、文件校验等高级技巧,帮助生物信息学研究者高效获取基因组注释文件。

weixin_29289821的博客 204

从零到一:高通Memory QMVS测试环境搭建的避坑指南

本文详细介绍了高通Memory QMVS测试环境搭建的全流程避坑指南,涵盖硬件选择、软件配置、QMVS核心组件安装及测试执行技巧。重点解析了adb工具配置、QPST日志抓取等关键步骤,帮助工程师高效搭建稳定测试环境,避免常见兼容性和稳定性问题。

weixin_29251567的博客 555

C++语言学习(十九)——C++类型识别

C++语言学习(十九)——C++类型识别 一、C++类型识别简介 1、C++类型识别简介 C++是静态类型语言,其数据类型是在编译期就确定的,不能在运行时更改。C++语言中,静态类型是对象自身的类型,动态类型是指针(引用)所指向对象的实际类型。RTTI(Run-Time Type Information)即运行时类型识别,C++通过RTTI实现对多态的支持。为了支持RTTI,C++提供了一个typ...

weixin_33910137的博客 728

【Java基础】还看不懂JDK7 HashMap环的产生原理你来打我

JDK7对旧table数据重定位到新table的函数transfer如下,其中重点关注部分以标出。 头插法正常情况下: 并发情况下 线程1只执行了Entry<K,V> next = e.next就被挂起了,而线程2正常执行完毕,结果图如下: 线程1接着下面继续执行: 通过逐步分析跟绘图可以知道红色部分会有环产生。 ...

sowhat 4244

1.基本数据类型

记录C++基本数据类型的相关知识

Little_pudding10的博客 2560

在jetson上对fastdeploy进行源码编译(完整版)

在大多数Linux发行版中,你可以使用包管理器安装Python开发包。根据jetpack的版本选择对应的推理库版本。在~/.bashrc中写入这三行。

如果想成为中心,那么就到中心去吧。 677

threadX的USBX的初始化和解初始化的分析。

tx_application_define的最后会使用tx_byte_pool_create创建usb线程的内存空间“ux_device_app_byte_pool”,再创建usb线程,也就是执行。主要就是创建了线程,也就是第3个参数app_ux_device_thread_entry,这个参数内是MX_USB_Device_Init,也就是USB底层初始化。进来的参数只有1个,是memory_ptr,这个就是创建的usb线程空间“ux_device_app_byte_pool”

qq_31885403的博客 647

C++查看数据类型

std::cout << "num 的数据类型是:" << typeid(num).name() << std::endl;std::cout << "str 的数据类型是:" << typeid(str).name() << std::endl;std::cout << "pi 的数据类型是:" << typeid(pi).name() << std::endl;使用`typeid`运算符需要包含头文件`<typeinfo>`。在C++中,可以使用`typeid`运算符来查看数据类型。

kupePoem的专栏 3745

uniapp - 超详细 H5 网页引入百度地图教程,附地图示例 / 获取当前设备定位的省市区、详细地址、经纬度信息 / 用户当前 IP 属地定位地理位置等等(新手小白快速上手,详细配置及使用全流程)

uniapp百度地图,uniapp百度地图ip属地定位,uniapp百度地图获取省市区详细地址经纬度等,uniapp百度地图当前用户设备定位省份市区详细所在地ip属地等详细教程示例,uniapp网页h5引入百度地图详细教程,uniapp h5网站使用百度地图详细教程,uniappH5端如何接入使用百度地图api,uniapp H5网页端百度地图获取地理位置信息,uniapp h5页面引入百度地图,uniapp h5平台百度地图获取城市信息,uniapp百度地图获取经纬度,uniapp 百度地图拿省市区用什么

🏆 前端领域优质创作者 6214

C/C++,判断变量的类型

c语言、c++语言判断变量类型。

程序员的一天 4万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

用 typeid 操作符 做一个C++数据类型大全

typeid 操作符用于判断表达式的类型,使用时要包括<typeinfo>头文件。它是一个操作符而不是函数,像sizeof一样也是操作符不是函数。 成员函数.name()返回的是c-style字串类型,是数据类型的“名称”,或者理解为是一个“缩写”形式。具体值由编译器的实现所决定,可能编译器不同返回值也不同(标准只要求实现为每个类型返回唯一的字符串)。 用法: typeid(变量、或数据类型).name() , 以下写法都被允许: int num=123; ...

汉阳Hann's Home 3799

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C++怎么打印变量类型,打印参数类型?typeid().name()

返回的类型名称可能是编译器特定的,不同编译器可能会有不同的实现。运算符来获取一个表达式的类型信息。成员函数来获取类型的名称。的类型信息,返回值是一个。类型的对象,可以通过其。在C++中,可以使用。

Dontla的博客 1万+

C++之获取变量信息名称、类型typeid

对于C++工程量级比较庞大的代码,代码中的变量、类、函数、结构体的识别都是一件让人头疼的事情,一方面代码越写越多,内容越来越丰富,但是没有办法对已有的代码框架进行高度的整合提炼;另一方面对新人逐渐不友好,增加了学习成本。那么如何获取一些类别信息并进行统筹管理呢?

PPdouluo的博客 2471

【C/C++】获取变量类型的函数typeid()

获取变量类型的函数typeid()

Ananbei的博客 1万+

c++输出变量类型 typeid操作符

#include #include using namespace std; struct A { int a; int b; }; void main() { A b; b.a = 3; b.b = 4; int a = 4; cout << type

2716

c++ typeid().name()获取变量类型

简介 typeid是C++的关键字之一,等同于sizeof这类的操作符。 typeid操作符的返回结果是名为type_info的标准库类型的对象的引用, 故需要包含头文件:#include <typeinfo>. typeid(a).name()可以返回变量a的类型; 举例 #include <iostream> #include <typeinfo&gt...

QFJIZHI的博客 2192

C/C++获取变量名字及变量类型

获取变量名字 用宏定义,前一个输出结果作为第二个的输入 #define VNAME(value) (#value) 获取变量类型 #include <typeinfo> 或者#include <typeinfo.h> typeid(value).name() 示例 #include "stdafx.h" #include <stdio.h> #includ...

发呆的程序猿 4038

C++ typeid详解

C++为我们提供了一种可以判断变量类型的关键字,即typeid,它的参数和sizeof一样,可以是一个变量,或者一种类型。typeid的返回值是type_info类,而且返回的是一个左值。type_info类禁用了拷贝构造函数,因此我们必须要用引用或指针来存储结果,如: const type_info& type1=typeid(int); const type_info* type2=&typeid(int); name() 作用:返回描述变量类型的字符串(注意:是类型全名)。 基本用法

[PE]经典八炮的博客 9233

c++输出lpbyte类型_变量类型摸不清脉络?用typeid()试试,用一次就上瘾

在python中,利用type()函数,可以很方便的判断变量类型。但是在c/c++中,判断变量类型,却不简单…出于某个奇葩需求,简单研究了一下c/c++如何判断变量类型,整理总结在此,分享给大家,也避免自己以后绕弯。一、c++判断变量类型c++中,可以利用typeid()来判断变量类型。第一步:创建test.cpp文件,输入以下代码:#include<typeinfo> #includ...

weixin_39978350的博客 166

从C向C++9——typeid和RTTI

了解typeid和RTTI

墨城烟柳ベ旧人殇的博客 1555

C++中输出变(判断)量类型

一般要用到头文件 #include&lt;typeinfo&gt; 像python这样的语言要判断一个变量类型是很简单的直接type(变量名)就可以。而C++中是这样用的: #include&lt;iostream&gt; #include&lt;typeinfo&gt; using namespace std; int main(){ enum Color {red,yellow,bl...

geter_CS的博客 2449

C++ 类型(typeid、RTTI、decltype等)

1,typeid操作符 用法和sizeof很像,既可以用于变量,也可以用于类型,作用是指出他们的类型。 #include<iostream> #include <c++/memory> using namespace std; class A { }; int main() { cout<<typeid(12).name()<<" "; cout<<typeid(int).name()<<" "; ...

nameofcsdn的博客 2468

关于typeid —— typeid和RTTI C++

 观点有一些值得商榷的地方关于typeid和RTTI的问答 问:在c++里怎么能知道一个变量的具体类型,如:c#里的typeof.还有我怎么知道一个变量的类型是某个类型的子类,也就是实现关键字IS答:1。运行时获知变量类型名称,可以使用 typeid(变量).name,需要注意不是所有编译器都输出"int"、"float"等之类的名称,对于这类的编译器可以这样使用:float f

gxj1680的专栏 9926
上一篇: Linux 查看/启动/关闭 - Mysql服务
下一篇: Linux 修改文件(文件夹)的权限 chown 与 chmod
cpp_learners
博客等级 码龄7年 1526粉丝 274原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值