Неразрешенный внешний символ для класса шаблона (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

0 ответов

Другие вопросы по тегам