今天做一个矩阵类,打算使用模板,结果出现了问题。
问题描述:
像往常一样在Matrix.h文件中定义了一个模板类,如下
template<typename T>
class Matrix
{
Matrix();
}
在Matrix.cpp文件中定义类成员函数,如下
template<typename T>
Matrix<T>::Matrix()
{
}
编译不通过

最后找到解决办法,将cpp文件的内容写到头文件中,即函数的声明和定义写到一起,编译通过。
在c++primer中找到答案,模板类的编译是分两种的一种是包含编译,就是我们使用的,一种是分离编译。不过分离编译需要加上关键字export。
测试了一下,发现vs2005不支持export进行分离编译。
本文介绍了作者在实现模板类过程中遇到的编译错误,并详细解释了如何通过将模板类的定义放置于头文件中来解决该问题。文章还探讨了C++中模板类的编译方式,包括包含编译与分离编译的区别。
1356

被折叠的 条评论
为什么被折叠?



