круговая зависимость — C ++, как иметь помощника потока

Я пытаюсь реорганизовать DLL для управления устройством OPOS. После того, как устройство заявлено и включено, оно запускает поток, чтобы постоянно проверять данные, полученные от устройства OPOS. Я объявляю метод в OposReader.h

Но я подумал, что было бы лучше вытащить указанный метод и передать его помощнику. Итак, я создал класс ReaderThreadHelper.h положить его в … но в потоке я должен настроить значения в OposReader.

Так что в OposReader я звоню #include ReaderThreadHelper.h и в ReaderThreadHelper.h Я должен сделать #include OposReader.h… и это начинает проблему с циклической ссылкой … и я слишком новичок в C ++, чтобы знать, как это исправить.

Должен ли я даже сделать это для начала? Есть ли более правильный способ сделать это?

0

Решение

Краткий ответ: используйте предварительные объявления и включайте заголовки для .cpp только файлы.

Подробное объяснение здесь: Разрешить циклические зависимости в C ++

1

Другие решения

Других решений пока нет …