c++中实现类间的相互通信

问题描述

c++中实现类间的相互通信
我想的问题:
有两个类在两个线程中独立运行。但这两个类需要相互传递参数,又要确定对方传完(修改)参数后进行下一步操作。
现在面临类的相互包含,还有如何确定对方修改了参数的问题。不知道如何解决。
我看的一种解决方法是在类a前先声明有类b的存在。但只是这样a仍不知道b内有什么变量和函数。
第二种方法是回调函数。但我只找到了c#的教程,没有c++类中成员函数的回调教程。如果各位有相关材料希望能给个链接。
第三种方法是用全局变量,但仍不能得知变量是否被修改过。
本人小白,不知道这种类的互相包含是否应该避免,如果是,(一般来说)应该如何设计类之间的关系。对于我这种情况,有什么途径实现类相互通信的功能呢?

解决方案

如果是两个进程,就用共享内存,发消息,管道,甚至socket

解决方案二:
回调函数,C++怎么没有例子。windows api的wndproc就是一个例子。
定义函数指针,传进去,对方直接调用。

解决方案三:
线程通信可以用event等事件通知,然后全局变量交换数据。

时间: 2024-09-13 00:53:59

c++中实现类间的相互通信的相关文章

求助:vmware中两台linux无法相互通信

问题描述 求助:vmware中两台linux无法相互通信 物理机有两块网卡,ip地址分别是:192.168.1.103.192.168.126.10.其中一台linuxA的网络设置采用vmnet8,ip:192.168.126.100.另一台LinuxB使用的是桥接,ip:192.168.1.121.现在linuxA能ping通linuxB,反过来linuxB无法ping通LinuxA,这是什么原因? 两台linux的防火墙均以关闭,且可以正常访问互联网,都能ping通物理机. 解决方案 win

Android中主线程与子线程之间相互通信教程

有时候,我们也可能碰到这样子的一种需求:需要主线程来向子线程发送消息,希望子线程来完成什么任务.如果这样子应该怎么做呢?这就是这篇文章将要讨论的内容. 一.HandlerThread类 主线程发送消息给子线程,通常思维逻辑就是:其实很简单,在主线程中实例化一个Handler,然后让他与子线程相关联(只要它与子线程的Looper相关联即可),这样子它处理的消息就是该子线程中的消息队列,而处理的逻辑都是在该子线程中执行的,不会占用主线程的时间.那么我们就来实现一下,看看这样子到底行得通还是行不通.新

java中一个类的方法与方法之间可以有联系,也可以相互孤立吗

问题描述 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗什么情况要孤立,什么情况要有联系呢 解决方案 看需求.比如说class A{ float get长度() { ... } float get宽度() { ... } float get面积() { return get长度()*get宽度(); }}这里就需要调用另外两个方法 解决方案二: 现在还有人有这玩意嘛 解决方案三: 类的方法主要是对属性的一些操作,方法作用

在scala中,类和它的伴生对象可以相互访问对方的私有对象

在scala中,类和它的伴生对象可以相互访问对方的私有对象 class Person {   private var _age = 2   def age_=(num: Int) = this._age = num   def age = _age   def printObj { println(s"I can see ${Person.obj}") } } object Person {   // access the private class field 'age'   def

socket-子网1中的PCa和子网2中的PCb 怎么建立网络连接,相互通信?

问题描述 子网1中的PCa和子网2中的PCb 怎么建立网络连接,相互通信? 子网1中的PCa和子网2中的PCb 怎么建立网络连接,相互通信?而且真心不明白编程socket通信上是怎么解决这个问题的. 解决方案 需要在公网上有一个服务器转发.否则内网的任意一方都没法主动连接对方 解决方案二: 1.设置两个子网的路由器使PCa.PCb可以被直接访问,如端口影射.非军事区... 2.参用NAT穿透技术 3.实用UPNP协议 4.有一个能联系两个子网的服务器转发.

Android中Service和Activity相互通信示例代码

前言 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,本文就给大家详细介绍了关于Android中Service和Activity相互通信的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Activity向Service通信 第一种方式:通过MyBinder方式调用Service方法 MainActivity public class Ma

如何配置多台三层交换VLAN间相互通信

本实验需求: 通过在SW100 来创建VLAN 100 ,sw2 上创建VLAN 200,因为VLAN100和VLAN200因为业务上的关系,需要两台PC之间相互通信,保证不同VLAN之间可以互相访问. 本实验将给您详细阐述实现方法,将用到诸多交换知识点. 实验拓扑: 实验过程  第一步 SW100基础配置 SW100> SW100>enable SW100#conf t Enter configuration commands, one per line. End with CNTL/Z.

QT中的多线程-与主线程通信

今天回想研究生期间做的项目,用到了Qt的多线程通信,当时一点都不懂,就这照猫画虎地写,如今因为上次面试中问到了,觉得得好好准备下: Qt 程序开始执行时,唯一的一个线程 -- 主线程 (main thread)也开始执行.主线程是唯一的,因为只有它才能创建 QApplication 或者是 QCoreApplication 对象,只有它才能通过应用程序对象调用 exec( ) 函数,只有它才能在 exec( ) 执行完毕后等待并处理事件. 主线程可以通过创建 QThread 子类对象开启一个新的

iOS App开发中UIViewController类的使用教程_IOS

一.引言作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上.iOS中的UIViewController是UIKit框架中最基本的一个类.从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础.基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑.这里旨在讨论UIViewController的生命周期和属性方法,在最基础的东西上,往往会得