今天做一个矩阵类,打算使用模板,结果出现了问题。
问题描述:
像往常一样在Matrix.h文件中定义了一个模板类,如下
template<typename T>
class Matrix
{
Matrix();
}
在Matrix.cpp文件中定义类成员函数,如下
template<typename T>
Matrix<T>::Matrix()
{
}
编译不通过
最后找到解决办法,将cpp文件的内容写到头文件中,即函数的声明和定义写到一起,编译通过。
在c++primer中找到答案,模板类的编译是分两种的一种是包含编译,就是我们使用的,一种是分离编译。不过分离编译需要加上关键字export。
测试了一下,发现vs2005不支持export进行分离编译。