今天在添加了两个新的cpp和hpp文件后调试,结果编译器一直提示所使用的一个枚举类型未定义,经过仔细确认发现该类型已经正确定义,并且代码文件已经包含到工程中。
后来经过反复确认,再加上网友给的灵感,感觉可能是由于头文件循环引用导致的该枚举类型声明出现了异常!!!经过排查,发现确实如此!!!由于工程比较大,头文件的引用可能也不是很规范,头文件的层层嵌套引用导致出现了A.hpp包含了B.hpp,然后B.hpp又包含了A.hpp,故出现了上述未定义的错误。
因此,当出现莫名其妙的类型未定义错误时,很可能是由于头文件循环引用导致的类型声明或定义异常的问题,这个时候要检查一下是否出现了头文件的循环引用。