#include <iostream>
using namespace std;
struct IHuemoe
{
virtual ~IHuemoe() {cout << "~IHuemoe" << endl;}
};
struct IOlolo
{
virtual ~IOlolo() {cout << "~IOlolo" << endl;}
};
struct SuperDuperClass final : public IHuemoe, public IOlolo
{
~SuperDuperClass() {cout << "~SuperDuperClass" << endl;}
};
int main() {
IHuemoe* test1 = new SuperDuperClass();
cout << "test1 deleting..." << endl;
delete test1;
IOlolo* test2 = new SuperDuperClass();
cout << "test2 deleting..." << endl;
delete test2;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IElIdWVtb2UKewoJdmlydHVhbCB+SUh1ZW1vZSgpIHtjb3V0IDw8ICJ+SUh1ZW1vZSIgPDwgZW5kbDt9Cn07CgpzdHJ1Y3QgSU9sb2xvCnsKCXZpcnR1YWwgfklPbG9sbygpIHtjb3V0IDw8ICJ+SU9sb2xvIiA8PCBlbmRsO30KfTsKCnN0cnVjdCBTdXBlckR1cGVyQ2xhc3MgZmluYWwgOiBwdWJsaWMgSUh1ZW1vZSwgcHVibGljIElPbG9sbwp7Cgl+U3VwZXJEdXBlckNsYXNzKCkge2NvdXQgPDwgIn5TdXBlckR1cGVyQ2xhc3MiIDw8IGVuZGw7fQp9OwoKaW50IG1haW4oKSB7CglJSHVlbW9lKiB0ZXN0MSA9IG5ldyBTdXBlckR1cGVyQ2xhc3MoKTsKCWNvdXQgPDwgInRlc3QxIGRlbGV0aW5nLi4uIiA8PCBlbmRsOwoJZGVsZXRlIHRlc3QxOwoJCglJT2xvbG8qIHRlc3QyID0gbmV3IFN1cGVyRHVwZXJDbGFzcygpOwoJY291dCA8PCAidGVzdDIgZGVsZXRpbmcuLi4iIDw8IGVuZGw7CglkZWxldGUgdGVzdDI7CglyZXR1cm4gMDsKfQ==