C++ / Qt QTime - 如何使用对象
C++ / Qt QTime - How to use the object
这更像是一个初学者C++ 问题:
我有2节课:
- A类,包括"ReadData"方法,一旦TCP套接字收到新数据,就会调用 该方法
- B类,包括通过TCP发送大量数据的方法"开始"。
由于体系结构的原因,不可能在一个类中同时使用这两种方法。
我想做什么:
- 一旦调用了 B 类中的"开始",就启动计时器。 一旦
- 调用了类 A 中的"读取数据",就停止计时器。
- 然后我会计算差异,看看花了多长时间......
我的问题:
-
在哪里创建对象:
QTimer transferTimer;
-
如何将对象传递给我的两个类?
C++如何处理这个问题的正确方法是什么?
谢谢。
这是可能的解决方案之一。它被简化以演示这个想法:
class C
{
public:
void start()
{
m_startTime = QTime::currentTime();
}
void stop()
{
m_endTime = QTime::currentTime();
}
int difference() const
{
return m_startTime.secsTo(m_endTime);
}
private:
QTime m_startTime;
QTime m_endTime;
};
class A
{
public:
A(std::shared_ptr<C> c) : m_c(c)
{}
void ReadData()
{
// ...
m_c->stop();
int transferTime = m_c->difference(); // seconds
}
private:
std::shared_ptr<C> m_c;
};
class B
{
public:
B(std::shared_ptr<C> c) : m_c(c)
{}
void start()
{
// ...
m_c->start();
}
private:
std::shared_ptr<C> m_c;
};
int main(int argc, char ** argv)
{
auto c = std::make_shared<C>();
// a and b keep reference to instance of class C
A a(c);
B b(c);
[..]
return 0;
}
相关文章:
- 如何仅使用对象名称打印特定于对象的成员
- 超出范围时使用对象
- 如何在对象 B 类 C++ 中使用对象 A?
- 使用对象数组对 SFML 进行动画处理
- 使用对象文件读取三角形数据网格
- 使用对象的基类部分模板专用化对对象进行哈希处理::哈希
- 如何使用C++对象的成员函数作为 C 样式回调?
- 如何使用对象制作分数列表并获得平均值
- 当使用对象名称后带有 [] 的类对象时,您究竟会传入什么.C++
- C++ <algorithm> 使用对象作为比较定义的 sort()
- 如何在不同的开关大小写语句上使用对象的类成员函数?
- 使用C对象指针构建PyObject*
- 如何在使用对象指针时访问成员函数
- 使用对象的生命周期作为设置器的安全性
- 如何使用对象数组访问类中的变量?
- 在条件运算符中使用对象两次会产生 UB 吗?
- 使用对象的索引从矢量中删除对象
- 通过为每个线程独占使用对象(不在线程之间共享)是保护该类的成员函数所必需的
- 使用对象指针向量的下限
- 如何在不使用对象的情况下连接字符串、整数和浮点数