Visual C ++では、myLib.hとmyLib.cppの2つのファイルを使用して静的ライブラリを作成しました。このライブラリを参照するファイルtestSequence.cppを含むコンソールアプリケーションプロジェクトもあります。myLib.h内でtemplate<class prec> class sequence
、関数宣言を持つクラスをprec *getPrimes(int numToGet)
定義しました。この関数は、myLib.cppで定義されます。ただし、testSequenceをビルドすると、リンクエラーが発生し、error LNK2019: unresolved external symbol "public: int * __thiscall mathLib::sequence<int>::getPrimes(int)" (?getPrimes@?$sequence@H@mathLib@@QAEPAHH@Z) referenced in function "char * __cdecl codeString(char *,char *,bool)" (?codeString@@YAPADPAD0_N@Z)
「そうです、ヘルプがあればいいのですが」と表示されます。
質問する
79 次
1 に答える
3
エラーの説明については、これをお読みください。
基本的に、あなたがやろうとしていることはできません。コンパイラは、特定のテンプレートタイプパラメータに対してクラステンプレートをインスタンス化しようとするときに、クラステンプレートの実装を認識できる必要があります。すべてのメンバー関数の実装をヘッダーファイルに移動する必要があります。
于 2012-11-25T03:24:06.813 に答える