跳转到内容
新建笔记

[build] F:\code\projects\ThreadRollDetection-QtYOLO-TRT\src\yolowindow.cpp(146): error C2572: "SOCKE

.cpp
SOCKETCAMERATHREAD::SOCKETCAMERATHREAD(YOLOWINDOW *parent = nullptr)
{xxxx}

这个错误是由于在构造函数的定义中重定义了默认参数。默认参数应该只在构造函数的声明中给出,而不是在定义中重复。

假设你的类和构造函数的声明在 yolowindow.h 中如下:

yolowindow.h
#ifndef YOLOWINDOW_H
#define YOLOWINDOW_H
#include <QObject>
#include <QUdpSocket>
class SOCKETCAMERATHREAD : public QObject {
Q_OBJECT
public:
explicit SOCKETCAMERATHREAD(QObject *parent = nullptr);
// 其他成员函数和变量
};
#endif // YOLOWINDOW_H

然后在 yolowindow.cpp 中,你应该这样定义构造函数:

yolowindow.cpp
#include "yolowindow.h"
SOCKETCAMERATHREAD::SOCKETCAMERATHREAD(QObject *parent)
: QObject(parent) {
// 构造函数的实现
}

确保在yolowindow.cpp中定义构造函数时,不再为参数提供默认值。这可以避免 C2572 错误。


来源:CSDN 原文,首次发布于 2024-07-23。