新建一个类,并引入另一个头文件,编译时出现以下错误:
一开始以为是新建的类 A,用到的数据结构引入的头文件不全导致,结果把类A里面的内容全部注释了还是会出现同样的问题。
后来发现原来是只要include 另一个头文件B.h时,就一定会出现这个错误。
奇怪的是在没有新建这个类A之前,整个程序编译是没有问题的!
经过检查发现只要把B.CPP中的所有头文件全部移到B.h中,再重新再A里面引入,然后编译就通过了。
出现这个问题的原有是B.h本身就有错误,而非新类A有问题。
当看到has incomplete type的时候,知道是前置声明的问题,但是却错误的在A里面折腾太久。(诡异的是没有A之前,B是完全可以正常编译和运行的!!!)