Re[3]: явоские слушатели или делфийские события с СЯХ
От: Alexander G Украина  
Дата: 16.06.08 13:22
Оценка: 2 (1)
Здравствуйте, sof.bix, Вы писали:

SB>да, это оно, насчет сигналов и слотов можете описать подробнее, они тоже за основу берут 2 ?


boost::signal берут за основу boost::function, которые в свою очередь берут за основу 2.

Я раньше писал на Delphi, для меня сейчас ближайший аналог события Delphi — это всё же boost::function :
1. На них можно назначить только один метод или NULL, как в Delphi.
2. При вызове, если событие может быть NULL, напо проверять If (myEvent_) myEvent_(Parameter), иначе вызов приведёт к исключению, как в Delphi.
3. Они потокобезопсны и достаточно легковесны.

Но при этом ситуация лучше чем в Delphi тем что:
1. Не требуется от обработчика точной сигнатуры — bind'ом можно добавить в метод свои параметры, переставить параметры события и проигнорировать параметры события. Можно записать в переменную типа boost::function как указатель на класс-обратотчик, так и сам класс-обработчик, то же касается дополнительных параметорв.
2. Событие инициализируется в NULL всегда, а не только когда является полем класса.
Русский военный корабль идёт ко дну!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.