#include <stdio.h>
struct A {
void foo() {puts("Привет, я A.");}
};
struct B {
void bar() {puts("Здарово, я B.");}
};
int main () {
B * b = new B();
void (A::*func)() = &A::foo;
(((A*)(&b))->*func)();
}
CiNpbmNsdWRlIDxzdGRpby5oPgoKc3RydWN0IEEgewogICAgdm9pZCBmb28oKSB7cHV0cygi0J/RgNC40LLQtdGCLCDRjyBBLiIpO30KfTsKCnN0cnVjdCBCIHsKICAgIHZvaWQgYmFyKCkge3B1dHMoItCX0LTQsNGA0L7QstC+LCDRjyBCLiIpO30KfTsKCmludCBtYWluICgpIHsKICAgIEIgKiBiID0gbmV3IEIoKTsKICAgIHZvaWQgKEE6OipmdW5jKSgpID0gJkE6OmZvbzsKICAgICgoKEEqKSgmYikpLT4qZnVuYykoKTsKfQ==