跳转到内容

C++/Typeinfo

维基教科书,自由的教学读本
< C++

<typeinfo>b:C++标准程式库中的一个b:头文件,定义了b:C++标准中用于运算符b:typeid返回结果类型及抛出的异常类型。[参 1]

[编辑]

  • type_info:包含着一个类型的信息。可以通过成员函数name()来获知其名字字符串。是运算符b:typeid返回结果类型。
  • bad_typeid:异常类型。当typeid表达式的实参为null时抛出该异常。
  • bad_cast:异常类型。当一个无效的dynamic_cast表达式执行时抛出该异常。

使用示例[编辑]

#include <iostream>
#include <typeinfo>
 
struct Base { virtual ~Base() = default; };
struct Derived : Base {};
 
int main() {
	Base b1;
	Derived d1;
 
	const Base *pb = &b1;
	std::cout << typeid(*pb).name() << '\n';
	pb = &d1;
	std::cout << typeid(*pb).name() << '\n';
}

参考文献[编辑]

页面Template:ReflistH/styles.css没有内容。

V