為什麼「未定義模板類別建構子的引用」?
模板類別定義了用於建立不同類型的類別的藍圖。要使用模板類,您需要使用特定類型實例化它。在您的例子中,您有兩個模板類別:nodo_colaypila 和 cola。
但是,編譯器在編譯程式碼之前需要先了解實例化類別的建構子。由於您沒有明確實例化具有特定類型的模板類,因此編譯器不知道要包含哪些建構子。
兩種解:
有兩種方法可以解決此問題:
解1:明確模板實例化
在cola.cpp末端新增明確範本實例化:
template class cola<float>; template class cola<string>;
確保所有範本定義都在一個翻譯單元(.cpp 檔案)中並且明確實例化位於檔案末端。
解決方案2:將程式碼移至標頭檔
將實作成員函數的程式碼從cola.cpp 和nodo_colaypila.cpp 移至對應的頭檔. h 中。這樣做使函數實作可用於包含這些標頭的所有翻譯單元。
摘要:
明確範本實例化方法可讓您控制特定類型的實例化。 「將程式碼移到頭檔」方法很常用,並使所有翻譯單元都可以實現。選擇取決於您的特定需求和專案要求。
以上是為什麼我收到'模板類別構造函數的未定義引用”以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!