#include <iostream>
#include <cstdlib>
class A
{
public:
virtual void Bar()
{
std::cout << "A::Bar() -> " << this << std::endl;
}
virtual void Foo()
{
std::cout << "A::Foo() -> " << this << std::endl;
}
};
class B
{
public:
virtual void Foo()
{
std::cout << "B::Foo() -> " << this << std::endl;
}
};
int main()
{
B* b = reinterpret_cast<B*>( new A );
b->Foo();
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KCmNsYXNzIEEKewpwdWJsaWM6Cgl2aXJ0dWFsIHZvaWQgQmFyKCkKCXsKCQlzdGQ6OmNvdXQgPDwgIkE6OkJhcigpIC0+ICIgPDwgdGhpcyA8PCBzdGQ6OmVuZGw7Cgl9CgkKCXZpcnR1YWwgdm9pZCBGb28oKQoJewoJCXN0ZDo6Y291dCA8PCAiQTo6Rm9vKCkgLT4gIiA8PCB0aGlzIDw8IHN0ZDo6ZW5kbDsKCX0JCn07CgpjbGFzcyBCCnsKcHVibGljOgoJdmlydHVhbCB2b2lkIEZvbygpCgl7CgkJc3RkOjpjb3V0IDw8ICJCOjpGb28oKSAtPiAiIDw8IHRoaXMgPDwgc3RkOjplbmRsOwoJfQp9OwoKaW50IG1haW4oKQp7CglCKiBiID0gcmVpbnRlcnByZXRfY2FzdDxCKj4oIG5ldyBBICk7CgliLT5Gb28oKTsJCglyZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cg==