// A.h
template<class T>
class CA
{
public:
CA();
~CA();
};
// A.cpp
template<class T>
CA<T>::CA()
{
}
template<class T>
CA<T>::~CA()
{
}
// main.cpp
#include "A.h"
void main()
{
CA<int> a;
}
这样直接编译会报连接错误!解决方法有2种:
1)增加包含#include "A.cpp"
2)实现也写在头文件里面。
不知道有没有其它好的方法...
本文探讨了C++中模板类的构造函数与析构函数的实现方式,并提供了两种解决方案来避免链接错误:一种是在源文件中包含实现;另一种是将实现置于头文件内。
1063

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



