#include<iostream>
using namespace std;
class A
{
public:
A()
{
cout << "1";
}
virtual ~A()
{
cout << "2";
}
};
class B:public A
{
public:
B()
{
cout << "3";
}
~B()
{
cout << "4";
}
};
int main()
{
A* obj;
obj = new B;
delete obj;
obj = new A;
delete obj;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBBCnsKcHVibGljOgogICAgQSgpCiAgICB7CiAgICAgICAgY291dCA8PCAiMSI7CiAgICB9CiAgICB2aXJ0dWFsIH5BKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICIyIjsKICAgIH0KfTsKCmNsYXNzIEI6cHVibGljIEEKewpwdWJsaWM6CiAgICBCKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICIzIjsKICAgIH0KICAgIH5CKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICI0IjsKICAgIH0KfTsKCmludCBtYWluKCkKewogICAgQSogb2JqOwogICAgb2JqID0gbmV3IEI7CiAgICBkZWxldGUgb2JqOwogICAgb2JqID0gbmV3IEE7CiAgICBkZWxldGUgb2JqOwogICAgcmV0dXJuIDA7Cn0=