Qt头文件引用其他类,主类头文件报错(1)invalid use of incomplete type 'class xx::yy' (2)forward declaration of 'class xx::yy'
其实这个错误很蠢,由于代码是从cpp文件直接copy过来的就没仔细看,但是他这个报错很有迷惑性,我们来看图:
就这行代码,从cpp文件中复制过来的:
本来目的呢就是提升这个变量的作用域,但是呢!!!在cpp文件里随手就new了头文件忘了这个事情!!!所以居然在头文件中new了,其实吧你直接在头文件中new也没什么,我特地做了一个无参构造函数来做测试:
仔细看,发现编译通过,运行也是正常的,那么问题出在哪呢?会不会就是那个构造函数的形参呢???
没错!!!!!!
就是构造函数里的ui在头文件中点不出来,为什么呢?
很简单啦就是没有被new啦(不过其实这个ui指针“new”的过程没这么简单,主要是因为这个ui呢他指向这个类他本身的一个实例,但是这个时候这个实例还没有分配空间,所以你点不出来很正常,,,)
最后友情提醒下,这边ui的部件是在ui的setup函数之后才会出现的,a = new a();这行代码的顺序记得注意
特此记录一下这个很蠢的bug,,,有时间我恶补一下cpp的代码加载顺序以及头文件执行顺序。。。嗨~cpp学习之路任重而道远啊!