テンプレート クラス コンストラクターのコンパイラ エラー「未定義の参照...」は、明示的なインスタンス化の欠如を示しますプログラムで使用される特定のテンプレート クラスの命令。この問題は、明示的に必要になるまでコンパイラがテンプレート コードを自動的にコンパイルしないために発生します。
実装ファイルの最後に明示的なテンプレートのインスタンス化ステートメントを追加します (colaこの場合は .cpp):
template class cola<float>; template class cola<string>;
さらに、次の行をnodo_colaypila.cpp:
template class nodo_colaypila<float>; template class nodo_colaypila<std::string>;
これにより、コンパイラは必要なテンプレート クラスをコンパイルします。
実装コードを cola から移動します.cpp と nodo_colaypila.cpp を cola.h に変換し、それぞれ、nodo_colaypila.h。これにより、テンプレート クラスを使用してすべての翻訳単位で関数定義を利用できるようになります。
解決策 1:
解決策 2:
nodo_colaypila<T><T>* ult, pri;
は次のようにする必要があります:
nodo_colaypila<T>* ult, *pri;
以上がテンプレート クラス コンストラクターで「未定義の参照への参照」エラーが発生するのはなぜですか? それらを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。