Что будет напечатано на экране после выполнения такого кода:

#include <iostream> 
class A{ 
public: 
    A(){ std::cout << "A"; } 
    virtual ~A(){ std::cout << "~A"; } 
}; 
class B: public A{ 
public: 
    B(){ std::cout << "B"; } 
    ~B(){ std::cout << "~B"; } 
}; 
 
int main(){ 
    A * a = new B(); 
    delete a; 
    return 0; 
} 
AB~A~B
BA~A~B
AB~B~A
AB~B
A~AB~B