我在源代码中使用了dynamic_cast来转换指针,如下所示。Base *base = here storing the pointer;
如果base没有类层次结构的指针我遇到了一个崩溃转储,我的应用程序由于dynamic_cast抛出异常而崩溃。
我知道dynamic_cast只有在与引用类型一起使用时才会抛出异常。你知道当我在上面的源码中使用指针时,dynamic_cast会抛出异常吗?
如果我们组合对dynamic_cast的调用并回到指针值上的原始类型,那么C++是否保证保留该值,前提是没有dynamic_cast失败,即不返回一个nullptr?virtual public A {};{ C* c = dynamic_cast= nullptr) B* bp = dynamic_cast<B*>(c);
a
我正在处理一种特殊情况,在这种情况下,我不能直接使用dynamic_cast,因为对象是void*。是否对其使用了第一个static_cast,然后使用了dynamic_cast (根据static_cast的结果)?这样做不对吗?下面是我要说的一个例子:{
// casting it to MyClass so we could use dynamic_castreturning the actual result that will