我的项目是用 C++ 编写一个程序,该程序创建一个用户定义的、列表实现的堆栈和队列,用于检查逐字母回文和逐字回文。所以我需要有一个堆栈和队列来检查字符和字符串类型。由于它是一个中级编程项目(我的 C++ 序列中的第三门课程),我们不能使用 STL 列表/队列/堆栈对象,而且我们还没有学习模板。但我认为必须为字符串或字符输入编写不同的实现并想要使用模板是很烦人的。
当所有代码都在一个文件下时,我让程序运行得很好——类及其实现都在我的 main.cpp 中。但我将代码拆分,将类定义放在 list.h 中,将实现放在 list.cpp 中,并将驱动程序代码保留在 main.cpp 中。
现在,当我运行时,出现以下错误:
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall Stack<int>::push_front(int)" (?push_front@?$Stack@H@@QAEXH@Z) referenced in function _main
Error 3 error LNK2019: unresolved external symbol "public: void __thiscall Queue<char>::push_back(char)" (?push_back@?$Queue@D@@QAEXD@Z) referenced in function _main d:\my documents\visual studio 2012\Projects\DACUNTO_HW5P2_TEMP\DACUNTO_HW5P2_TEMP\main.obj DACUNTO_HW5P2_TEMP
Error 2 error LNK2019: unresolved external symbol "public: int __thiscall Stack<int>::pop_front(void)" (?pop_front@?$Stack@H@@QAEHXZ) referenced in function _main d:\my documents\visual studio 2012\Projects\DACUNTO_HW5P2_TEMP\DACUNTO_HW5P2_TEMP\main.obj DACUNTO_HW5P2_TEMP
Error 4 error LNK2019: unresolved external symbol "public: char __thiscall Queue<char>::pop_back(void)" (?pop_back@?$Queue@D@@QAEDXZ) referenced in function _main d:\my documents\visual studio 2012\Projects\DACUNTO_HW5P2_TEMP\DACUNTO_HW5P2_TEMP\main.obj DACUNTO_HW5P2_TEMP
Error 5 error LNK1120: 4 unresolved externals d:\my documents\visual studio 2012\Projects\DACUNTO_HW5P2_TEMP\Debug\DACUNTO_HW5P2_TEMP.exe 1 1 DACUNTO_HW5P2_TEMP
我不知道为什么会发生这种情况,但是当程序都在一个文件下时,程序运行良好。这是我的代码:
main.cpp: http: //pastebin.com/mQW4EV99
list.h:http://pastebin.com/Lze6jZv2
list.cpp:http ://pastebin.com/7bks6Bt1
谢谢