private slots: void on_Btn_Connect_clicked(); void onStateChanged(int state); void onErrorOccurred();为啥我直接添加在头文件里面他识别不了
时间: 2024-04-17 16:25:16 浏览: 134
类为什么放在头文件里不行
在C++中,如果你将函数声明放在头文件中,但是实现放在源文件中,编译器可能会无法识别函数的实现。这是因为编译器在编译源文件时,只能看到包含的头文件和源文件的内容,但无法访问其他源文件中的实现。
为了解决这个问题,你可以将函数的实现放在头文件中,或者在源文件中包含函数的实现。以下是两种解决方法:
1. 将函数的实现放在头文件中:
```cpp
// 头文件.h
#ifndef YOUR_HEADER_FILE_H
#define YOUR_HEADER_FILE_H
#include <QObject>
class YourClass : public QObject
{
Q_OBJECT
public:
YourClass(QObject *parent = nullptr);
private slots:
void on_Btn_Connect_clicked();
void onStateChanged(int state);
void onErrorOccurred();
};
#endif // YOUR_HEADER_FILE_H
```
```cpp
// 头文件.cpp
#include "your_header_file.h"
YourClass::YourClass(QObject *parent)
: QObject(parent)
{
// 构造函数的实现
}
void YourClass::on_Btn_Connect_clicked()
{
// on_Btn_Connect_clicked()的实现
}
void YourClass::onStateChanged(int state)
{
// onStateChanged()的实现
}
void YourClass::onErrorOccurred()
{
// onErrorOccurred()的实现
}
```
2. 在源文件中包含函数的实现:
```cpp
// 头文件.h
#ifndef YOUR_HEADER_FILE_H
#define YOUR_HEADER_FILE_H
#include <QObject>
class YourClass : public QObject
{
Q_OBJECT
public:
YourClass(QObject *parent = nullptr);
private slots:
void on_Btn_Connect_clicked();
void onStateChanged(int state);
void onErrorOccurred();
};
#endif // YOUR_HEADER_FILE_H
```
```cpp
// 源文件.cpp
#include "your_header_file.h"
YourClass::YourClass(QObject *parent)
: QObject(parent)
{
// 构造函数的实现
}
void YourClass::on_Btn_Connect_clicked()
{
// on_Btn_Connect_clicked()的实现
}
void YourClass::onStateChanged(int state)
{
// onStateChanged()的实现
}
void YourClass::onErrorOccurred()
{
// onErrorOccurred()的实现
}
```
使用其中一种方法,你应该能够在头文件中使用函数,并使编译器正确识别它们的实现。
阅读全文