Qt:字段类型不完整

时间:2013-06-14 11:26:34

标签: c++ qt

无法编译我的课程。 得到错误: 错误:字段'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;
}

怎么了?

4 个答案:

答案 0 :(得分:5)

根据我的经验,当像这样的奇怪错误无缘无故地出现时,大部分时间它都是通过更改某些名称来解决的,因此这是一个名称冲突。 (但大部分时间,我仍然不明白冲突在哪里)。

所以我会拼命尝试按顺序更改名称:

  1. 名称标题保护PROCESS_H
  2. 班级Process
  3. 的名称
  4. 成员filename
  5. 的名称
  6. 文件process.hprocess.cpp的名称(如果有其他具有相同文件名的文件夹,如果您使用qmake,它们将在同一个地方编译)
  7. 成员pid的名称,因为此时你真的很绝望
  8. 使用您确定无法使用的内容,例如MySuperFancyProcess; - )

答案 1 :(得分:3)

问题解决了!是的,这是因为QString类;不是在我的文件中,而是在QT的一些

答案 2 :(得分:0)

您的头文件名错误,因为qt alredy具有“ process.h”。创建文件“ signal.h”时出现类似错误,重命名为“ signal_db.h”时将其清除

答案 3 :(得分:-1)

如果有人遇到相同问题,请发表评论以补充说明。我也有一个名为“ Process”的类,这是导致此问题的原因。我重命名了该类,并将标头保护重命名为一个稍有不同的字符串,在我的案例中为“ AProcess”,从而解决了问题。