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,和它有关吗?,另外模版编译是不是比较特别,要在头包含成员函数的实现文件,我也试过没成功,说声明和定义不匹配
展开
 我来答
百度网友b7d2b2f
推荐于2016-04-07 · TA获得超过901个赞
知道小有建树答主
回答量:994
采纳率:50%
帮助的人:583万
展开全部
记住::、

模板类的“声明”和“实现”必须在“同一个”“文件”里,

要么都在matrix.h里 ,要么都在 matrix.cpp里
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式