环境:
win10 vs2015+Qt5.9编程
现象:
在编译一个相互包含头文件的代码(A.h中包含B.h,B.h中包含C.h,C.h再包含了A.h)
但是编译出现错误,提示:A.h文件中,B类未声明;B.h文件中,C类未声明
分析:
1、检查名字无错误,F12也能跳进对应类中;
①排除命名空间;
②排除
#ifndef _XXXX_H_
#define _XXXX_H_
BALABALA
#endif
#pragma once等;
③排除源文件编码问题,还是编译错误;
2、问题很大可能是头文件相互包含所致。但是怎么修改都不对。
解决方法:
在C.h文件中,去除#include "FlowManage.h"
然后再在定义C类之前加入如下语句:
class A;
问题解决,因此还是不够细心所致,以此为戒!!!