#include <iostream>
#include <iomanip>
using namespace std;
struct A
{
virtual ~A()
{
cout << "A::~A()\n";
}
};
struct B: public A
{
~B()
{
cout << "B::~B()\n";
}
};
struct C: public A
{
~C()
{
cout << "C::~C()\n";
}
};
int main()
{
B* myB=new B;
C* myC=new C;
A** array=new A*[2];
array[0]=myB;
array[1]=myC;
delete [] array;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgQQp7CiAgICB2aXJ0dWFsIH5BKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJBOjp+QSgpXG4iOwogICAgfQp9OwoKc3RydWN0IEI6IHB1YmxpYyBBCnsKICAgIH5CKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJCOjp+QigpXG4iOwogICAgfQp9OwoKc3RydWN0IEM6IHB1YmxpYyBBCnsKICAgIH5DKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJDOjp+QygpXG4iOwogICAgfQp9OwoKaW50IG1haW4oKQp7CiAgICBCKiBteUI9bmV3IEI7CiAgICBDKiBteUM9bmV3IEM7CgogICAgQSoqIGFycmF5PW5ldyBBKlsyXTsKICAgIGFycmF5WzBdPW15QjsKICAgIGFycmF5WzFdPW15QzsKCiAgICBkZWxldGUgW10gYXJyYXk7CgogICAgcmV0dXJuIDA7Cn0KCg==