mmo*_*hab 1 c++ dynamic-cast reference-type
我使用动态模型来保证安全:
这是我用指针的代码:
XYZ xyz = dynamic_cast<XYZ*>(abc);
if (xyz == nullptr)
{
// TODO handle error
}
Run Code Online (Sandbox Code Playgroud)
现在有办法做同样的事情,但有参考:
XYZ& xyz = dynamic_cast<XYZ&>(abc);
if (xyz == nullptr)
{
// TODO handle error
}
Run Code Online (Sandbox Code Playgroud)
这段代码没有编译,但我想问有没有办法以类似的方式做到这一点.
dynamic_cast如果与引用一起使用,则会在失败时抛出异常.要处理失败,请捕获异常:
try {
XYZ& xyz = dynamic_cast<XYZ&>(abc);
}
catch (std::bad_cast& e) {
//handle error
}
Run Code Online (Sandbox Code Playgroud)