В Qt это называется механизмом сигналов-слотов. Но Qt расчитана на графическую среду. Можно в принципе эту идею сделать и самому. Т.е. сделать свой диспетчер событий, в нем зарегистрировать поставщиков и потребителей. В CORBA есть специальный сервис - EventService и более новый NotificationService. Можно посмотреть как сделано там и реализовать самому.
:) посмотри как сделан любой хороший MUD на C++. Понятно что там просто квинтэссенция всего этого -- то есть надо регистрироваться на события в комнате, на тики, да на кучу всего.
Так с наследованием. Там где нужен полиморфизм тоже делается, да еще и гибкость больше. Ну и пусть мад написан на си, он же все равно в аналогичном стиле написан.
То есть что должно происходить под крышкой сдирается идея там. Потом читается книжка по идиомам си++, идея с идиомами компонуется и все..
Ну я не знаю, по моему однопотоковую штуку такую продизайнить не очень проблемно. А конечно когда пытаться чтобы во многих потоках объекты регистрировались на евенты, то тогда действительно возникает проблема именно с дизайном, с первой попытки можно фигню написать.