天天看點

函數模闆出現error LNK2019: unresolved external symbol

        出現這個錯誤error LNK2019: unresolved external symbol的原因在于模闆函數的申明與定義在不同檔案中,這就導緻了錯誤的出現。當編譯器遇到一個模闆定義時,它并不生成代碼。這就是為什麼沒有調用這個函數模闆時,代碼可以運作成功,而調用這個函數模闆時,編譯出現錯誤。隻有當執行個體化出模闆的特定版本時,編譯器才會生成代碼。由于這個特性,會影響錯誤被檢測出來。 對于調用普通的函數,編譯器隻要掌握函數的申明。為了生成一個執行個體化的版本,編譯器要掌握函數模闆和模闆成員函數的定義。是以,與非模闆代碼不同,模闆的頭檔案通常要包括申明和定義。

       函數模闆和類模闆成員函數的定義通常放在頭檔案中。

繼續閱讀