无法编译我的课程。 得到错误: 错误:字段'filename'具有不完整的类型
如果我将QString filename
更改为QString *filename
,则错误会消失..但我需要QString filename
。
process.h:
#ifndef PROCESS_H
#define PROCESS_H
#include <QString>
class Process
{
public:
int pid;
QString filename;
Process(int pid, QString filename);
};
#endif // PROCESS_H
process.cpp:
#include "process.h"
Process::Process(int pid, QString filename)
{
this->pid = pid;
this->filename = filename;
}
怎么了?
答案 0 :(得分:5)
根据我的经验,当像这样的奇怪错误无缘无故地出现时,大部分时间它都是通过更改某些名称来解决的,因此这是一个名称冲突。 (但大部分时间,我仍然不明白冲突在哪里)。
所以我会拼命尝试按顺序更改名称:
PROCESS_H
Process
filename
process.h
和process.cpp
的名称(如果有其他具有相同文件名的文件夹,如果您使用qmake,它们将在同一个地方编译)pid
的名称,因为此时你真的很绝望使用您确定无法使用的内容,例如MySuperFancyProcess
; - )
答案 1 :(得分:3)
问题解决了!是的,这是因为QString类;不是在我的文件中,而是在QT的一些
中答案 2 :(得分:0)
您的头文件名错误,因为qt alredy具有“ process.h”。创建文件“ signal.h”时出现类似错误,重命名为“ signal_db.h”时将其清除
答案 3 :(得分:-1)
如果有人遇到相同问题,请发表评论以补充说明。我也有一个名为“ Process”的类,这是导致此问题的原因。我重命名了该类,并将标头保护重命名为一个稍有不同的字符串,在我的案例中为“ AProcess”,从而解决了问题。