可能重複:
Why can templates only be implemented in the header file?
Why should the implementation and the declaration of a template class be in the same header file?模板和分裂成的.h/.cpp文件
我要創建一對夫婦的ADT,並比較它們的性能(我參加一個數據結構課程並想進行實驗;注意:我們的教師使用Java)。我想創建泛型類,這樣我就不會陷入特定的數據類型。我很久以前就讀過,不可能分解模板類。保持代碼清潔的最佳方法是什麼?最明顯的方法是在不隱藏實現的情況下簡單使用.cpp文件,例如在java中。有沒有其他方法可以使用?
簡短的答案是將它全部留在標題中。稍微長一點的版本是爲了確保它在編譯時結束於頭部。 (換句話說,如果你有多個文件,頭文件必須包含它們。) – Corbin
你試圖避免在頭文件中定義你的方法嗎? –
使用C++ 11 extern模板或將其保留在標題中。 – chris