我正在尝试重构DLL以控制OPOS设备。声明并启用设备后,它将启动线程以不断检查从OPOS设备接收的数据。我在OposReader.h中声明该方法

但是我认为,最好删除上述方法,然后将其移至帮助程序中。因此,我创建了一个放在其中的类ReaderThreadHelper.h,但是在线程中,我必须调整OposReader中的值。

因此,在OposReader中,我调用#include ReaderThreadHelper.h,而在ReaderThreadHelper.h中,我必须执行#include OposReader.h ...,这从循环引用开始出现问题...而我对于C ++还是太陌生,不知道如何修理它。

我什至应该这样做吗?有没有更合适的方法可以做到这一点?

最佳答案

简短答案:使用前向声明,并仅包含.cpp文件的标头。

详细说明在这里:Resolve circular dependencies in C++

关于c++ - C++如何拥有线程助手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12392801/

10-10 23:18