Какой будет результат выполнения программы?

#include <iostream> 
#include <vector> 
 
using namespace std; 
 
class A  
{ 
public: 
    A(){ cout << "A::A";} 
    ~A(){;} 
}; 
 
class B: public A 
{ 
public: 
    B(){ cout << "B::B";} 
    ~B(){;} 
}; 
 
int main() 
{ 
    A* a = new B; 
    B* b = dynamic_cast<B*>(a); 
    return 0; 
}
ошибка компиляции
A::AB::B
B::BA::A
ошибка во время выполнения