Qt/C++两个头文件嵌套使用,提示没有这个类的问题解决

Qt/C++两个头文件嵌套使用,提示没有这个类的问题解决

前言

外行人都羡慕程序员的高薪待遇,殊不知程序员这一苦逼职业,每天不是在解决自己的代码逻辑bug问题中,就是在解决别人代码的bug中,这还不够,有时候系统、编译器都有来凑热闹的时候;前面的个人逻辑bug还好些,就怕自己因为不熟悉编译器机制而产生的莫名错误,那才是最令人头疼的,这个问题我今天就遇到了,下面进入正题。

示例
  1. 首先我们的想法是这两个类要各自拿对方的资源,或者是利用信号和槽进行资源的共享操作,那么按照逻辑我们需要定义了两个A、B 类,然后互相导入各自的头文件,并生成各自的一个新对象指针,图片如下:
    Qt/C++两个头文件嵌套使用,提示没有这个类的问题解决

同理在a类中导入b的头文件:
Qt/C++两个头文件嵌套使用,提示没有这个类的问题解决
2. 重点来了,通过编译你会发现下面这个问题,提示某某不是一个类????再三确认我们的类名没写错,头文件已经导入,重新编译,还是这个问题。

Qt/C++两个头文件嵌套使用,提示没有这个类的问题解决

3.这个问题我问遍了身边的人也找不出问题所在(我们都是新入门的小菜鸟),这让我一度认为是编译器出问题了,于是把编译器卸载重新装了一个最新版本的编译器,最后结果还是上面这个问题,这个时候已经怀疑不到编译器了,肯定是入了某个坑,经过查阅资料、浏览各大论坛和一番实验,终于找到了问题的所在。
4.这是因为头文件在嵌套使用时,编译器在编译其中一个时必然还没有生成另一个的头文件,这就造成不认识两者中的另一个,所以知道了问题的所在,解决就很简单了,解决如下:
在 .h文件中不要导入对方的头文件,使用class a 来声明,头文件放在.cpp文件中。
Qt/C++两个头文件嵌套使用,提示没有这个类的问题解决至此问题就解决了,新手入门别人踩过的坑我们也是要踩的,愿我们在踩坑中成长!