这在Qt Creator中是一个非常令人沮丧的错误信息: ’XYZ’ does not name a type.这通常意味着类中存在一个错误XYZ,导致编译器无法生成类型,但是没有关于出错的其他提示.
有什么建议?
小智 6
我在 qtcreator 3.4.1 和 QT 5.4 上发现这个问题,当我替换诸如
#include <QTextEdit>
Run Code Online (Sandbox Code Playgroud)
和
class QTextEdit;
Run Code Online (Sandbox Code Playgroud)
这个问题消失了。
小智 5
我刚刚遇到这个问题,就像Arckaroph所说的那样:问题是当我们在源代码文件中包含头文件时,我们在其中使用指令#ifndef,我们不能再将它包含在头文件中将它的类型包含在源代码文件中的变量中
例如:
class1.h包含Class1 class2.h包含Class2 class2如果我们在class2中包含class1.h,则有一个带有class1类型的私有变量V. CPP我们不能在class2.h中包含它以给V一个class1类型.
所以我们在class1.h之前放入class2.cpp class2.h或者从class2.cpp中删除class1.h