【发布时间】:2018-07-12 21:34:16
【问题描述】:
这更像是一个通用的 C++ 初学者问题:
我有 2 节课:
- A 类,包括一个“ReadData”方法,一旦 TCP 套接字接收到新数据就会调用该方法
- B 类,包括通过 TCP 发送大量数据的方法“开始”。
由于架构的原因,不可能将两种方法都放在一个类中。
我想做什么:
- 调用 B 类中的“开始”后立即启动计时器。
- 调用 A 类中的“ReadData”后立即停止计时器。
- 然后我会计算差异,看看花了多长时间......
我的问题:
-
我在哪里创建对象:
QTimer transferTimer; 如何将对象传递给我的两个类?
C++ 中如何正确处理这个问题?
谢谢。
【问题讨论】:
-
您可能有第三个 C 类来保存计时器 (
QTimer)。 A 类和 B 类都将保留对 C 类实例的引用。 B 类将调用 C::start() 来启动计时器,A 类将调用 C::stop() 来停止计时器。函数 C::diff() 将返回经过的时间 (QTime::elapsed ())。 -
你能举个例子“..keep the references to class C”吗?顺便说一句:A 类位于 B 之外的另一个命名空间中
-
你可以访问这两个类吗?你能修改它们(代码)吗?
-
是的,应该没问题