由于工程比较大,头文件的引用可能也不是很规范,头文件的层层嵌套引用导致出现了A.hpp包含了B.hpp,然后B.hpp又包含了A.hpp,故出现了上述未定义的错误。

因此,当出现莫名其妙的类型未定义错误时,很可能是由于头文件循环引用导致的类型声明或定义异常的问题,这个时候要检查一下是否出现了头文件的循环引用。