dynamic_cast C++ · 关键字
运行时向下类型转换运算符,只能用于含虚函数的多态类型;转换失败时指针返回 nullptr,引用抛 std::bad_cast。
怎么用
dynamic_cast<目标类型>(表达式)
小例子
class 动物 { public: virtual ~动物(){} };
class 猫 : public 动物 {};
动物* a = new 猫;
猫* c = dynamic_cast<猫*>(a);
std::cout << (c ? "是猫" : "不是");
运行结果
是猫
提醒:用于引用时会抛异常;非多态类型只能用 static_cast
官方文档:https://en.cppreference.com/w/cpp/language/dynamic_cast
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← C++全部词条