gpt4 book ai didi

c++ - C++对象之间的通信

转载 作者:搜寻专家 更新时间:2023-10-31 00:23:02 25 4
gpt4 key购买 nike

这是一个问题,我之前遇到过。基本上一个 C++ 对象有一个成员对象做一些工作,一旦工作完成,需要向父对象发出通知。允许这种通信的最优雅的解决方案是什么。处于这个位置是否表明设计存在缺陷?

详细说明。

class A {
B member;
void do_something();
}

class B{
void talk_to_network();
};


void do_something()
{
//Conditional wait on a variable that will change when talk to network completes.
//So need a way for B to inform A, that it is done.

}

最佳答案

除非您谈论并发(线程),否则从操作返回结果的通常方法是从函数返回值。

这可能取决于您所说的“成员对象”是什么意思。你是说某个类的数据成员吗?

class A { };

class B
{
A member;
};

如果 A 有一个“做一些工作”的成员函数,该成员函数应该(一阶近似)返回结果作为它的正常返回值。这是做这种事情的最简单的方法。因此 B 调用该方法并返回结果。

如果它必须返回多个结果,您可以将一个类似函数的对象传递给 A 的成员函数,这样它就可以回调它。

关于c++ - C++对象之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2602776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com