私は C++ を学んでおり、現在クラス テンプレートで奇妙な問題が発生しています。これは私のヘッダーファイルです:
#ifndef VECTOR_H
#define VECTOR_H
#include <iostream>
#include <list>
using namespace std;
template <int n>
class Vector {
public:
list<float> coords;
Vector();
Vector(list<float> ncoords);
};
template <int n>
Vector<n>::Vector() {
coords.assign(n, 0.0);
}
#endif
そして、これは私の .cpp ファイルです:
#include "vector.h"
#include <list>
using std::ostream;
using namespace std;
template <int n>
Vector<n>::Vector(list<float> ncoords): coords {ncoords}{}
私がすれば、すべてがうまくいきますVector<2> vector;
しかし、しようとするとリンカはエラーを出します
Vector<20> vector2 { list<float>{} };
エラーメッセージ
`Vector<20>::Vector(std::list >)' への未定義参照
問題は、この問題をどのように解決できるかです。