LINUX.ORG.RU

Я плакалъ
PS каких классов каких eventov каких сообщений?

anonymous
()

C++, класс-шаблон

Например изменился какой-то мембер в одном из объектов, так вот нужно как-то сообщить остальным объектам, что такой-то мембер изменил состояние.

anonymous
()

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

anonymous
()

Есть такая libsigc++, сделана на шаблонах.

justme
()

:) посмотри как сделан любой хороший MUD на C++. Понятно что там просто квинтэссенция всего этого -- то есть надо регистрироваться на события в комнате, на тики, да на кучу всего.

dilmah ★★★★★
()
Ответ на: комментарий от anonymous

Нужно почитать хорошую книгу по ООП.

anonymous
()

2dilmah: а много их на плюсах писано? ссылки в студию.

anonymous
()

2anonymous (*) (2002-10-11 00:08:21.684)

ну а пусть даже на си. Вот как одна библиотека пишется на чистом Си:

#define CV_CLASSIFIER_FIELDS() \ blah blah blah;

struct CvClassifier { CV_CLASSIFIER_FIELDS(); };

#define CV_CART_FIELDS() \ CV_CLASSIFIER_FIELDS(); \ pyh pyh pyh;

struct CvCART { CV_CART_FIELDS(); };

Так с наследованием. Там где нужен полиморфизм тоже делается, да еще и гибкость больше. Ну и пусть мад написан на си, он же все равно в аналогичном стиле написан.

То есть что должно происходить под крышкой сдирается идея там. Потом читается книжка по идиомам си++, идея с идиомами компонуется и все..

dilmah ★★★★★
()

Ну я не знаю, по моему однопотоковую штуку такую продизайнить не очень проблемно. А конечно когда пытаться чтобы во многих потоках объекты регистрировались на евенты, то тогда действительно возникает проблема именно с дизайном, с первой попытки можно фигню написать.

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.