#include <iostream>
class container;
class one {
public:
one()
{
eventsHandler = NULL;
};
~one() {};
void (container::*eventsHandler)();
};
class container {
public:
container()
{
zone = new one;
zone->eventsHandler = &container::events;
};
~container()
{
delete zone;
};
one *zone;
void events()
{
std::cout << "event handler is on..." << std::endl;
};
};
int main()
{
container *test = new container;
(test->*(test->zone->eventsHandler))();
std::cout << "just checker..." << std::endl;
delete test;
//system("pause");
};
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgY29udGFpbmVyOwoKY2xhc3Mgb25lIHsKcHVibGljOgpvbmUoKSAKICAgIHsgCiAgICAgICAgZXZlbnRzSGFuZGxlciA9IE5VTEw7IAogICAgfTsKfm9uZSgpIHt9OyAKCnZvaWQgKGNvbnRhaW5lcjo6KmV2ZW50c0hhbmRsZXIpKCk7Cn07CgpjbGFzcyBjb250YWluZXIgewpwdWJsaWM6CiAgICBjb250YWluZXIoKSAKICAgIHsgCiAgICAgICAgem9uZSA9IG5ldyBvbmU7CiAgICAgICAgem9uZS0+ZXZlbnRzSGFuZGxlciA9ICZjb250YWluZXI6OmV2ZW50czsKICAgIH07CiAgICB+Y29udGFpbmVyKCkKICAgIHsgCiAgICAgICAgZGVsZXRlIHpvbmU7IAogICAgfTsKCiAgICBvbmUgKnpvbmU7CiAgICB2b2lkIGV2ZW50cygpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJldmVudCBoYW5kbGVyIGlzIG9uLi4uIiA8PCBzdGQ6OmVuZGw7CiAgICB9Owp9OwoKaW50IG1haW4oKQp7CiAgICBjb250YWluZXIgKnRlc3QgPSBuZXcgY29udGFpbmVyOwogICAgKHRlc3QtPioodGVzdC0+em9uZS0+ZXZlbnRzSGFuZGxlcikpKCk7CgogICAgc3RkOjpjb3V0IDw8ICJqdXN0IGNoZWNrZXIuLi4iIDw8IHN0ZDo6ZW5kbDsKICAgIGRlbGV0ZSB0ZXN0OwoKICAgIC8vc3lzdGVtKCJwYXVzZSIpOwp9Ow==