C++ Type_info 库 - bad_cast


描述

它会在动态转换失败时引发异常。

宣言

以下是 std::bad_cast 的声明。

C++98

	
class bad_cast;

C++11

class bad_cast;

参数

没有任何

返回值

没有任何

例外情况

无抛出保证- 该成员函数永远不会抛出异常。

数据竞赛

区域设置对象已修改。

例子

在下面的 std::bad_cast 示例中。

#include <iostream>
#include <typeinfo>
 
struct Foo { virtual ~Foo() {} };
struct Bar { virtual ~Bar() {} };
 
int main() {
   Bar b;
   try {
      Foo& f = dynamic_cast<Foo&&gt;(b);
   } catch(const std::bad_cast& e) {
      std::cout << e.what() << '\n';
   }
}

输出应该是这样的 -

std::bad_cast
类型信息.htm