问题描述
- c++中实现类间的相互通信
- 我想的问题:
有两个类在两个线程中独立运行。但这两个类需要相互传递参数,又要确定对方传完(修改)参数后进行下一步操作。
现在面临类的相互包含,还有如何确定对方修改了参数的问题。不知道如何解决。
我看的一种解决方法是在类a前先声明有类b的存在。但只是这样a仍不知道b内有什么变量和函数。
第二种方法是回调函数。但我只找到了c#的教程,没有c++类中成员函数的回调教程。如果各位有相关材料希望能给个链接。
第三种方法是用全局变量,但仍不能得知变量是否被修改过。
本人小白,不知道这种类的互相包含是否应该避免,如果是,(一般来说)应该如何设计类之间的关系。对于我这种情况,有什么途径实现类相互通信的功能呢?
解决方案
如果是两个进程,就用共享内存,发消息,管道,甚至socket
解决方案二:
回调函数,C++怎么没有例子。windows api的wndproc就是一个例子。
定义函数指针,传进去,对方直接调用。
解决方案三:
线程通信可以用event等事件通知,然后全局变量交换数据。
时间: 2024-09-13 00:53:59