2012-10-13 52 views
0

我一直在致力於linked list實現。以前我只有char作爲數據類型。我試着實現泛型/模板,所以我可以使用任何數據類型。C++通用鏈接列表單獨類

我在我的項目中有4個文件。 Clist.h, Clist.cpp, Main.cpp and EmptyListException.h

以前我的程序不會運行時,我的Clist.cpp與我的Main.cpp分開。然後我複製了整個班級我的Main.cpp,它運行沒有問題。

有沒有一種方法可以做到這一點,所以我的Clist.cpp可以從我的主文件(這是linked list的測試工具)分開。

我可以發佈代碼,如果它會幫助。

回答

2

要使模板起作用,它們不能在* .h文件和* .cpp文件之間分開。編譯器需要查看模板的實現以使用它。

看到這個類似的問題:Splitting templated C++ classes into .hpp/.cpp files--is it possible?

+0

所以我在技術上不需要Clist.cpp如果我所有的代碼添加從Clist.cpp我Main.cpp的 – George

+0

是的,但它可能會是更好的移動從'Clist.cpp'到'Clist.h'的模板代碼可以防止你的Main.cpp變得混亂。例如,如果您看到標準矢量庫的實現,則所有通用代碼都位於一個頭文件中。 – Ryan