-1
#include <iostream>
using namespace std;
struct A
{
virtual void foo() { }
};
struct B1 :A
{
};
int main()
{
int x = 42;
A *a = (A*)&x;
try
{
B1 *b = dynamic_cast<B1*>(a);
}
catch (...)
{
cout << "what kind of exception is here now?";
}
return 0;
}
私はどのような例外をキャッチしますか?dynamic_castポインタ例外キャッチ
これ以外に、かっこで書くことができます:catch(...)もこの例外をキャッチしますか?
ポインタを使った 'dynamic_cast'は例外をスローしません。失敗した場合は' nullptr'を返します。 –
'A * a =(A *)&x;'これは無効です。 – Jarod42
このコードはナンセンスです。それをしないでください。 –