ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
26 июня
266851 Топик полностью
fk0, легенда (12.08.2011 13:27, просмотров: 128) ответил MegaJohn на Вот в ANSI C всё просто - вызвал какой-нить долгий процесс с callback`ом (к примеру иннициализация модема типо modem_init( modem_init_ok_func ); ) и потом обратный вызов на функцию modem_init_ok_func. Но в С++ нужно передавать не только указатель
В GCC тоже всё просто. Вложенная функция имеет доступ к локальным переменным внешней функции. Следовательно, можно определить локальную переменную с указателем на экземпляр класса, например, определить вложенную функцию и передать её адрес как callback. Внутри вложенной функции получить указатель на экземпляр класса и сделать что нужно. Не знаю, работает ли в G++... Проверять лень.
[ZX]