#include <cstdio> // for printf.
struct super_unko
{
virtual void dummy() {};
~super_unko() { std::printf("in super_unko d-tor\n"); }
};
struct sub_unko : super_unko
{
virtual void dummy() {};
~sub_unko() { std::printf("in sub_unko d-tor\n"); }
};
int main()
{
super_unko *p = new sub_unko;
// delete (sub_unko*)p;
delete p;
std::getchar();
}
CgojaW5jbHVkZSA8Y3N0ZGlvPiAgICAvLyBmb3IgcHJpbnRmLgoKc3RydWN0IHN1cGVyX3Vua28KewoJdmlydHVhbCB2b2lkIGR1bW15KCkge307CgoJfnN1cGVyX3Vua28oKSB7IHN0ZDo6cHJpbnRmKCJpbiBzdXBlcl91bmtvIGQtdG9yXG4iKTsgfQp9OwoKc3RydWN0IHN1Yl91bmtvIDogc3VwZXJfdW5rbwp7Cgl2aXJ0dWFsIHZvaWQgZHVtbXkoKSB7fTsKCgl+c3ViX3Vua28oKSB7IHN0ZDo6cHJpbnRmKCJpbiBzdWJfdW5rbyBkLXRvclxuIik7IH0KfTsKCmludCBtYWluKCkKewoJc3VwZXJfdW5rbyAqcCA9IG5ldyBzdWJfdW5rbzsKCi8vCWRlbGV0ZSAoc3ViX3Vua28qKXA7CglkZWxldGUgcDsKCglzdGQ6OmdldGNoYXIoKTsKfQo=