我正在尝试制作一个模板化的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
来解决它