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