今天在添加了兩個新的cpp和hpp文件後調試,結果編譯器一直提示所使用的一個枚舉類型未定義,經過仔細確認發現該類型已經正確定義,並且代碼文件已經包含到工程中。
後來經過反覆確認,再加上網友給的靈感,感覺可能是由於頭文件循環引用導致的該枚舉類型聲明出現了異常!!!經過排查,發現確實如此!!!由於工程比較大,頭文件的引用可能也不是很規範,頭文件的層層嵌套引用導致出現了A.hpp包含了B.hpp,然後B.hpp又包含了A.hpp,故出現了上述未定義的錯誤。
因此,當出現莫名其妙的類型未定義錯誤時,很可能是由於頭文件循環引用導致的類型聲明或定義異常的問題,這個時候要檢查一下是否出現了頭文件的循環引用。