首页 > 其他分享 >关键字 typeid

关键字 typeid

时间:2023-07-21 17:36:32浏览次数:26  
标签:info typeid 类型信息 int 关键字 Base type

typeid 运算符用来获取一个表达式的类型信息。
ypeid 会把获取到的类型信息保存到一个 type_info 类型的对象里面,并返回该对象的常引用;当需要具体的类型信息时,可以通过成员函数来提取。

格式如下:
typeid(数据类型) 或
typeid(表达式)

type_info类的几个成员函数:

name() 用来返回类型的名称
raw_name() 用来返回名字编码(Name Mangling)算法产生的新名称
hash_code() 用来返回当前类型对应的 hash 值

#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
    int num1 = 6;
    float num2 = 2.1;
    double num3 = 42.324;
    
    const type_info &num1_info = typeid(num1);
    const type_info &num2_info = typeid(num2);
    const type_info &num3_info = typeid(num3);
    const type_info &num4_info = typeid(20*6/1.0);

     cout << num1_info.name() << endl;
    cout << num2_info.name() << endl;
    cout << num3_info.name() << endl;
    // 输出表达式
    cout << num4_info.name() << endl;
    
    return 1;
}

输出:
i
f
d
d

类型的比较

char *str;
int a = 2;
int b = 10;
float f;

类的比较

class Base{};
class Derived: public Base{};
Base obj1;
Base *p1;
Derived obj2;
Derived *p2 = new Derived;
p1 = p2;

注:C++ 能获取到的类型信息非常有限,也没有统一的标准,如同“鸡肋”一般,大部分情况下我们只是使用重载过的“==”运算符来判断两个类型是否相同。

标签:info,typeid,类型信息,int,关键字,Base,type
From: https://www.cnblogs.com/kbqlm/p/17572018.html

相关文章

  • python自动化基于Excel的关键字驱动类如何使窗口最大化
    Python自动化基于Excel的关键字驱动类如何使窗口最大化在编写基于Excel的关键字驱动脚本时,有时需要使窗口最大化以确保脚本的稳定性和可靠性。本文将介绍如何使用Python自动化基于Excel的关键字驱动类来实现窗口最大化。1.安装所需的库在开始之前,我们需要确保已经安装了所需的......
  • 关键字
    abstract 表明类或者成员方法具有抽象属性assert 断言,用来进行程序调试boolean 基本数据类型之一,声明布尔类型的关键字break 提前跳出一个块byte 基本数据类型之一,字节类型case 用在switch语句之中,表示其中的一个分支catch 用在异常处理中,用来捕捉异常char 基本数据类......
  • 解读 ---- yield 关键字
    合集-c#基础(6) 1.编码技巧---如何实现字符串运算表达式的计算07-122.编码技巧---同步锁对象的选定07-133.解读---yield关键字07-174.并发编程---信号量线程同步07-185.并发编程---为何要线程池化07-186.编码技巧---谨防闭包陷阱07-19收起 引言yie......
  • Synchronized关键字同步类方法
    要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:publicsynchronizedvoidrun(){}   从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法......
  • 【八股文 01】const 关键字
    1const含义被它修饰的值不能改变,是只读变量。必须在定义的时候就给它赋初值2const作用1、修饰变量,说明该变量不可以被改变2、修饰指针,分为指向常量的指针(pointertoconst)和自身是常量的指针(常量指针,constpointer)和前面两种的组合:指向常量的常指针3、修饰引用,指向常量的......
  • c语言static关键字的用法
    今天的c语言学习中遇到了static关键字,由于对这个关键字的用法比较模糊,但是这个关键字的作用很大,以下是它的用法:一、修饰局部变量(1)用静态关键字static修饰的局部变量,在编译的过程中,会在数据区为该变量开辟空间,并对其进行初始化,如果代码中未对其进行初始化,则系统默认初始化......
  • 易优eyoucms热门关键字标签
    【基础用法】名称:hotwords功能:获取网站搜索的热门关键字 语法:{eyou:hotwordsnum='6'subday='365'maxlength='20'id='field'}  <ahref='{$field.url}'target="_blank">{$field.word}</a><br/>{/eyou:h......
  • Java标识符和关键字
    Java标识符和关键字标识符Java所有的组成部分都需要名字类名.变量名以及方法名都被称为标识符注意点:所有的标识符都应该以(AZ或者az),美元符($),或者下划线开始首字符之后可以是字母(AZ或者az),美元符($),下划线(_)或数字的任何字符组合不能使用关键字作为变量名或......
  • Amazon SP API拉取分类,五点,描述和关键字
    1.用asin拉取五点,品牌,和分类,每次最多20个(但拉取listing的时候法国和日本站点没有返回asin)$result=$requestReport->applicationreport($account->merchant_id,strtolower($account->site),'/catalog/2022-04-01/items?identifiers=B0BNVT65X4,B0BTBWXLCD,B0BTBYS33P&identi......
  • jvm注意事项 - 指令集出现this关键字
    首先如果在虚拟机中出现了this关键字,那么在栈帧中调用了非static方法。大家都知道,非static方法是需要一个对象的没这个对象的地址就是这个this,如果局部变量表中就存在这个this了,那么他就一定是个非static方法。如果this存在,则操作的指令集的顺序的下标就为0,其他变量的顺序就从1......