c++ typeid有哪些用法
时间: 2023-07-31 07:14:09 浏览: 162
C++中的typeid运算符用于获取一个表达式的类型信息。以下是typeid运算符的主要用法:
1. 获取类型名
可以使用typeid运算符获取一个表达式的类型名。例如:
```c++
int i;
std::cout << typeid(i).name() << std::endl; // 输出 "int"
```
2. 判断类型是否一致
可以使用typeid运算符判断两个类型是否一致。例如:
```c++
int i;
if (typeid(i) == typeid(int)) {
std::cout << "i is an int" << std::endl;
}
```
3. 用于多态类型的判断
当使用多态时,可以使用typeid运算符来判断一个指针指向的对象的类型。例如:
```c++
class Base {
public:
virtual ~Base() {}
};
class Derived : public Base {};
int main() {
Base* b = new Derived;
if (typeid(*b) == typeid(Derived)) {
std::cout << "b points to a Derived object" << std::endl;
}
delete b;
}
```
在上面的例子中,我们使用了虚函数和多态来创建一个基类Base和一个派生类Derived。然后我们创建了一个指向Derived对象的Base指针b,并使用typeid运算符判断b指向的对象是否是Derived类型。
阅读全文