#include <iostream>
using namespace std;
class Pierwsza {
public:
void (Pierwsza::*callback)();
void wykonajCallback(){ (this->*callback)(); }
};
class Druga : public Pierwsza {
public:
Druga(){
callback = static_cast<void (Pierwsza::*)()>(&Druga::b_onCallback);
}
void b_onCallback(){ cout << "Test" << endl; }
};
int main(){
Pierwsza *obj = new Druga();
obj->wykonajCallback();
delete obj;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUGllcndzemEgewogICAgcHVibGljOgoJCXZvaWQgKFBpZXJ3c3phOjoqY2FsbGJhY2spKCk7CgkJdm9pZCB3eWtvbmFqQ2FsbGJhY2soKXsgKHRoaXMtPipjYWxsYmFjaykoKTsgfQp9OwoKY2xhc3MgRHJ1Z2EgOiBwdWJsaWMgUGllcndzemEgewogICAgcHVibGljOgoJCURydWdhKCl7CgkJCWNhbGxiYWNrID0gc3RhdGljX2Nhc3Q8dm9pZCAoUGllcndzemE6OiopKCk+KCZEcnVnYTo6Yl9vbkNhbGxiYWNrKTsJCgkJfQoJCXZvaWQgYl9vbkNhbGxiYWNrKCl7IGNvdXQgPDwgIlRlc3QiIDw8IGVuZGw7IH0KfTsKCmludCBtYWluKCl7CglQaWVyd3N6YSAqb2JqID0gbmV3IERydWdhKCk7CglvYmotPnd5a29uYWpDYWxsYmFjaygpOwoJZGVsZXRlIG9iajsKCXJldHVybiAwOwp9