C++中 typeid
时间: 2024-06-16 17:03:49 浏览: 13
在C++中,typeid是一个运算符,用于获取一个表达式的类型信息。它返回一个std::type_info对象,该对象包含有关表达式类型的信息。
typeid的使用方式如下:
```
typeid(expression)
```
其中,expression是一个表达式,可以是变量、对象、类型或者表达式的结果。
typeid运算符返回的std::type_info对象可以用于比较两个类型是否相同,也可以通过其成员函数name()获取类型的名称。
需要注意的是,typeid运算符只能用于具有多态性(即包含虚函数)的类或者指向多态类的指针或引用。对于非多态类或者非多态类型的表达式,typeid运算符将返回静态类型的信息。
相关问题
c++中typeid的用法详解
typeinfo是C++内置类型信息库,在程序运行时动态获取对象或类型的信息。typeinfo 主要包含 type_info 类型以及 3 个运算符:typeid、dynamic_cast 与 typeid。typeid 运算符用于获取一个类型或一个表达式的类型信息,返回值是一个 const std::type_info & 类型的引用。具体用法可以参考C++标准库相关文档。
c++的typeid
C++中的typeid是一个运算符,用于获取一个表达式的类型信息。它返回一个std::type_info对象,可以用来比较两个类型是否相同。
例如,下面的代码演示了如何使用typeid:
```c++
#include <iostream>
#include <typeinfo>
int main() {
int i = 0;
double d = 0.0;
std::cout << typeid(i).name() << std::endl; // 输出 "int"
std::cout << typeid(d).name() << std::endl; // 输出 "double"
std::cout << (typeid(i) == typeid(d)) << std::endl; // 输出 "0"
return 0;
}
```
在上面的代码中,我们使用了typeid运算符来获取变量i和d的类型信息,并将其输出到控制台。我们还比较了i和d的类型是否相同,结果为false。