首頁 > 後端開發 > C++ > 為什麼我收到'模板類別構造函數的未定義引用”以及如何修復它?

為什麼我收到'模板類別構造函數的未定義引用”以及如何修復它?

DDD
發布: 2024-12-09 19:57:15
原創
492 人瀏覽過

Why Do I Get

為什麼「未定義模板類別建構子的引用」?

模板類別定義了用於建立不同類型的類別的藍圖。要使用模板類,您需要使用特定類型實例化它。在您的例子中,您有兩個模板類別:nodo_colaypila 和 cola。

但是,編譯器在編譯程式碼之前需要先了解實例化類別的建構子。由於您沒有明確實例化具有特定類型的模板類,因此編譯器不知道要包含哪些建構子。

兩種解:

有兩種方法可以解決此問題:

解1:明確模板實例化

在cola.cpp末端新增明確範本實例化:

template class cola<float>;
template class cola<string>;
登入後複製

確保所有範本定義都在一個翻譯單元(.cpp 檔案)中並且明確實例化位於檔案末端。

解決方案2:將程式碼移至標頭檔

將實作成員函數的程式碼從cola.cpp 和nodo_colaypila.cpp 移至對應的頭檔. h 中。這樣做使函數實作可用於包含這些標頭的所有翻譯單元。

摘要:

明確範本實例化方法可讓您控制特定類型的實例化。 「將程式碼移到頭檔」方法很常用,並使所有翻譯單元都可以實現。選擇取決於您的特定需求和專案要求。

以上是為什麼我收到'模板類別構造函數的未定義引用”以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板