Qt报错:XXX does not name a type,及解决办法

  • Post author:
  • Post category:其他


一、错误

Qt报错:XXX does not name a type

二、报错原因

在两个类的头文件中,相互引用了对方的头文件

例如:

//a.h
#include "b.h"
 
class AClass 
{
    AClass();
 
private:
    BClass b;
}
//b.h
 
#include "a.h"
 
class BClass
{
    BClass();
 
private:
    AClass a;
}

三、解决办法

a.h文件修改为:

//a.h
 
#include <QApplication>
 
class BClass;
 
class AClass
{
    AClass();
 
private:
    BClass a;

然后在a.cpp里面添加:

//a.cpp
#include "b.h"

同理,b.h也修改为这样:

//b.h
 
#include <QApplication>
 
class AClass;
 
class BClass
{
    BClass();
 
private:
    AClass a;
}

在b.cpp中包含a.h:

//b.cpp
 
#include "a.h"



版权声明:本文为qq_41176921原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。