c++ - 这个构造函数在做什么?

标签 c++ qt

<分区>

更新:感谢您的快速回复,对重复的内容感到抱歉 – 我不知道要搜索什么,因为我不知道那个结构叫什么。

我只使用了非常非常简单的 C++ 类(在使用 Arduino 时),如果这个问题太基础,请原谅。

我试图理解下面的代码片段,它来自 Qt BLE example .我以前从未见过这样的构造函数。谁能告诉我它叫什么(样式等,以便我查找)和/或它在做什么?

显然它正在初始化一些实例和一些变量,但我不明白为什么...(它们不是参数,那它们是什么?)“初始化器” 在大括号之外。

pingpong.cpp
pingpong.h


PingPong::PingPong():
    m_serverInfo(0), socket(0), discoveryAgent(0), interval(5), m_resultLeft(0), m_resultRight(0),
    m_showDialog(false), m_role(0), m_proportionX(0), m_proportionY(0), m_serviceFound(false)
{
    m_timer = new QTimer(this);
    connect(m_timer, SIGNAL(timeout()), this, SLOT(update()));
}

最佳答案

这是一种在 C++ 中初始化类成员的方法,称为成员初始化列表

另一种方法(主要是 C++11/14/17)可以直接在头文件/类声明中初始化成员

假设:

class PingPong
{
  public:
    PingPong();

  private:
    int32_t m_serverInfo{0};
    std::string m_aString{"I am a string"};
};

计时器和 connect() 用于初始化 QTimer 并连接计时器发出的信号 timeout() 并将该事件连接到另一个函数,称为update() 和 PingPong 类的成员

关于c++ - 这个构造函数在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34693157/

相关文章:

c++ - 临时对象的破坏顺序异常(exception)?

c++ - 如何在编译时排除单元测试

qt - 如何在 Qt3D 中绘制物体的轮廓?

c++ - 通过搜索或键通过 QStandardItemModel 检索 QStandardItem

c++ - 组织项目后Qt中.h文件错误没有这样的文件或目录

c++ - 普通 C++ 应用程序 GUI 开发的最佳实践

c++ - 声明没有类关键字的模板函数

c++ - 添加字符串 vector 和不同数据类型 vector 的映射

c++ - 在 std::map 中使用 std::function

c++ - 程序无法编译