私のプロジェクトは、文字ごとの回文と単語ごとの回文をチェックする、ユーザー定義のリスト実装スタックとキューを作成するプログラムを C++ で作成することです。そのため、char 型と string 型をチェックするスタックとキューが必要になります。これは中級プログラミング (私の C++ シーケンスの 3 番目のコース) のプロジェクトであるため、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
なぜこれが起こるのかはわかりませんが、すべてが 1 つのファイルの下にある場合、プログラムは正常に動作します。これが私のコードです:
main.cpp: http://pastebin.com/mQW4EV99
list.h: http://pastebin.com/Lze6jZv2
list.cpp: http://pastebin.com/7bks6Bt1
ありがとうございました