#include <iostream>
using namespace std;
struct A{
A(){cout<<"+A "<<this<<endl;}
~A(){cout<<"-A "<<this<<endl;}
virtual void test(){}
};
struct B:A{
B(){cout<<"+B "<<this<<endl;}
~B(){cout<<"-B "<<this<<endl;}
virtual void test(){}
};
int main(){
cout<<sizeof(A)<<" "<<sizeof(B)<<endl;
{
A *a=new B;
delete a;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnN0cnVjdCBBewogICBBKCl7Y291dDw8IitBICI8PHRoaXM8PGVuZGw7fQogICB+QSgpe2NvdXQ8PCItQSAiPDx0aGlzPDxlbmRsO30KICAgdmlydHVhbCB2b2lkIHRlc3QoKXt9Cn07CnN0cnVjdCBCOkF7CiAgIEIoKXtjb3V0PDwiK0IgIjw8dGhpczw8ZW5kbDt9CiAgIH5CKCl7Y291dDw8Ii1CICI8PHRoaXM8PGVuZGw7fQogICB2aXJ0dWFsIHZvaWQgdGVzdCgpe30KfTsKCmludCBtYWluKCl7CiAgIGNvdXQ8PHNpemVvZihBKTw8IiAiPDxzaXplb2YoQik8PGVuZGw7CiAgIHsKICAgICAgQSAqYT1uZXcgQjsKICAgICAgZGVsZXRlIGE7CiAgIH0KfQo=