Неразрешенный внешний символ для класса шаблона (LNK2019)
Я пытаюсь создать шаблонный класс Matrix, но я даже не могу создать фреймворк.
Я постоянно получаю сообщение об ошибке:
LNK2019 unresolved external symbol "public: __thiscall Matrix<int>::Matrix<int>(int,int)" (??0?$Matrix@H@@QAE@HH@Z) referenced in function _main Matrix C:\\...\Matrix\Matrix\MatrixClient.obj
Я порвал этот код на части, пытаясь понять, почему он выдает ошибку, но не повезло. Любая помощь приветствуется.
Matrix.h:
template<typename T> class Matrix
{
public:
//constructors
Matrix<T>(int mheight,int mwidth);
~Matrix<T>();
protected: //Data structure
std::vector<std::vector<T>> vec;
int height, width;
};
Matrix.cpp:
template <typename T> Matrix<T>::Matrix(int mheight, int mwidth)
{
height = mheight; width = mwidth;
}
template <typename T> Matrix<T>::~Matrix()
{
}
MatrixClient.cpp:
int main()
{
Matrix<int> *m = new Matrix<int>(3,1);
}
РЕДАКТИРОВАТЬ:
Я исправил это, добавив #include "Matrix.cpp"
к основанию Matrix.h