模板类的未解析外部符号(LNK2019)

时间:2019-02-15 20:21:18

标签: c++ templates matrix 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 个答案:

没有答案