error LNK2019: 无法解析的外部符号
win32控制台程序,没使用动态库,设计了一个矩阵类模版,连接时产生errorLNK2019:无法解析的外部符号"public:virtual__thiscallmatr...
win32控制台程序,没使用动态库,设计了一个矩阵类模版,连接时产生
error LNK2019: 无法解析的外部符号 "public: virtual __thiscall matrix <double>::~matrix <double>(void)" (??1?$matrix@N@@UAE@XZ),该符号在函数 _wmain 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall matrix <double>::matrix <double>(void)" (??0?$matrix@N@@QAE@XZ),该符号在函数 _wmain 中被引用
matrix.h 如下
template <class T> class matrix
{
public:
//构造和析构
matrix();
matrix(int row,int col);
matrix(int row,int col,T value[]);
matrix(const matrix& other);
bool init(int row,int col);
void set(T value[]);
virtual ~matrix();
//构造和析构 end
......
}
matrix.cpp 如下
//构造和析构
template <class T> matrix <T>::matrix()
{
mp=NULL;
if(init(1,1)==0)
cout < <"矩阵初始化失败" < <endl;
}
.......
什么原因啊,是模版声明和定义时写的不对吗,请高手帮忙解决一下,谢谢了!
另外将成员函数定义放在主函数文件中就通过编译和连接了,不知问题出在哪
我用的是vs2008,和它有关吗?,另外模版编译是不是比较特别,要在头包含成员函数的实现文件,我也试过没成功,说声明和定义不匹配 展开
error LNK2019: 无法解析的外部符号 "public: virtual __thiscall matrix <double>::~matrix <double>(void)" (??1?$matrix@N@@UAE@XZ),该符号在函数 _wmain 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall matrix <double>::matrix <double>(void)" (??0?$matrix@N@@QAE@XZ),该符号在函数 _wmain 中被引用
matrix.h 如下
template <class T> class matrix
{
public:
//构造和析构
matrix();
matrix(int row,int col);
matrix(int row,int col,T value[]);
matrix(const matrix& other);
bool init(int row,int col);
void set(T value[]);
virtual ~matrix();
//构造和析构 end
......
}
matrix.cpp 如下
//构造和析构
template <class T> matrix <T>::matrix()
{
mp=NULL;
if(init(1,1)==0)
cout < <"矩阵初始化失败" < <endl;
}
.......
什么原因啊,是模版声明和定义时写的不对吗,请高手帮忙解决一下,谢谢了!
另外将成员函数定义放在主函数文件中就通过编译和连接了,不知问题出在哪
我用的是vs2008,和它有关吗?,另外模版编译是不是比较特别,要在头包含成员函数的实现文件,我也试过没成功,说声明和定义不匹配 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询