"安全"动态演员?

use*_*043 3 c++ oop casting

我熟悉如何在C++中进行动态强制转换,如下所示:

myPointer = dynamic_cast<Pointer*>(anotherPointer);
Run Code Online (Sandbox Code Playgroud)

但是你如何使这成为一个"安全"的动态演员呢?

小智 7

dynamic_cast无法转换指针因为它不是所需类的完整对象时,它返回一个空指针来指示失败.如果dynamic_cast用于转换为引用类型并且无法进行转换,则会抛出类型为bad_cast的异常.