class SCallback{};
class SGICallback{};
class MyServer;
class Zerclient : public SCallback {
public:
void SomeFunc();
void setMyServer(MyServer* oServer) { p_MyServer = oServer; }
private:
MyServer* p_MyServer;
};
class MyServer : public SCallback, public SGICallback
{
public:
MyServer()
{
Zerclient oZerclient;
oZerclient.setMyServer(this);
}
void DataFromZerclient(){}
};
void Zerclient::SomeFunc() {p_MyServer->DataFromZerclient();}
int main() {}
Y2xhc3MgU0NhbGxiYWNre307CmNsYXNzIFNHSUNhbGxiYWNre307CgpjbGFzcyBNeVNlcnZlcjsKCmNsYXNzIFplcmNsaWVudCA6IHB1YmxpYyBTQ2FsbGJhY2sgewpwdWJsaWM6CiAgICAgICAgdm9pZCBTb21lRnVuYygpOwoJdm9pZCBzZXRNeVNlcnZlcihNeVNlcnZlciogb1NlcnZlcikgeyBwX015U2VydmVyID0gb1NlcnZlcjsgfQoKcHJpdmF0ZToKCU15U2VydmVyKiBwX015U2VydmVyOwp9OwoKY2xhc3MgTXlTZXJ2ZXIgOiBwdWJsaWMgU0NhbGxiYWNrLCBwdWJsaWMgU0dJQ2FsbGJhY2sKewpwdWJsaWM6IAoKTXlTZXJ2ZXIoKQoJewoJCVplcmNsaWVudCBvWmVyY2xpZW50OwoJCW9aZXJjbGllbnQuc2V0TXlTZXJ2ZXIodGhpcyk7Cgl9Cgp2b2lkIERhdGFGcm9tWmVyY2xpZW50KCl7fQoKfTsKCnZvaWQgWmVyY2xpZW50OjpTb21lRnVuYygpIHtwX015U2VydmVyLT5EYXRhRnJvbVplcmNsaWVudCgpO30KCmludCBtYWluKCkge30=