#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class Base
{
public:
~Base() //non-virtual destructor
// virtual ~Base() //virtual destructor
{ cout << "Base destroyed\n"; }
};
////////////////////////////////////////////////////////////////
class Derv : public Base
{
public:
~Derv()
{ cout << "Derv destroyed\n"; }
};
////////////////////////////////////////////////////////////////
int main()
{
Base* pBase = new Derv;
delete pBase;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmNsYXNzIEJhc2UKICAgewogICBwdWJsaWM6CiAgICAgIH5CYXNlKCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbm9uLXZpcnR1YWwgZGVzdHJ1Y3RvcgovLyAgICB2aXJ0dWFsIH5CYXNlKCkgICAgICAgICAgICAgICAgICAvL3ZpcnR1YWwgZGVzdHJ1Y3RvcgogICAgICAgICB7IGNvdXQgPDwgIkJhc2UgZGVzdHJveWVkXG4iOyB9CiAgIH07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KY2xhc3MgRGVydiA6IHB1YmxpYyBCYXNlCiAgewogICBwdWJsaWM6CiAgICAgIH5EZXJ2KCkKICAgICAgICAgeyBjb3V0IDw8ICJEZXJ2IGRlc3Ryb3llZFxuIjsgfQogICB9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmludCBtYWluKCkKICAgewogICBCYXNlKiBwQmFzZSA9IG5ldyBEZXJ2OwogICBkZWxldGUgcEJhc2U7CiAgIHJldHVybiAwOwogICB9Cg==