SOCKETCAMERATHREAD::SOCKETCAMERATHREAD(YOLOWINDOW *parent = nullptr){xxxx}这个错误是由于在构造函数的定义中重定义了默认参数。默认参数应该只在构造函数的声明中给出,而不是在定义中重复。
假设你的类和构造函数的声明在 yolowindow.h 中如下:
#ifndef YOLOWINDOW_H#define YOLOWINDOW_H
#include <QObject>#include <QUdpSocket>
class SOCKETCAMERATHREAD : public QObject { Q_OBJECTpublic: explicit SOCKETCAMERATHREAD(QObject *parent = nullptr); // 其他成员函数和变量};
#endif // YOLOWINDOW_H然后在 yolowindow.cpp 中,你应该这样定义构造函数:
#include "yolowindow.h"
SOCKETCAMERATHREAD::SOCKETCAMERATHREAD(QObject *parent) : QObject(parent) { // 构造函数的实现}确保在yolowindow.cpp中定义构造函数时,不再为参数提供默认值。这可以避免 C2572 错误。
来源:CSDN 原文,首次发布于 2024-07-23。