#include <iostream>
struct Base {
virtual ~Base() { std::cout << "Base::~Base()\n"; }
};
struct Derived: Base {
~Derived() { std::cout << "Derived::~Derived()\n"; }
};
int main()
{
Base *p = new Derived();
delete p;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEJhc2UgewogIHZpcnR1YWwgfkJhc2UoKSB7IHN0ZDo6Y291dCA8PCAiQmFzZTo6fkJhc2UoKVxuIjsgfQp9OwoKc3RydWN0IERlcml2ZWQ6IEJhc2UgewogIH5EZXJpdmVkKCkgeyBzdGQ6OmNvdXQgPDwgIkRlcml2ZWQ6On5EZXJpdmVkKClcbiI7IH0KfTsKCmludCBtYWluKCkKewogIEJhc2UgKnAgPSBuZXcgRGVyaXZlZCgpOwogIGRlbGV0ZSBwOwogIHJldHVybiAwOwp9