急!派生一个类模板的问题,求助。
不常用模板,今日一用问题就来了,请各位高手帮忙解决
我的代码太乱,我模拟了一下过程,应该能看的明白。想法是实现聚集,先用模板定义一个聚集的基类
然后其他的聚集类派生至这个基类
已经实现的一个模板基类
template <class ITEMTYPE> class Base
{
public:
int count();
ITEMTYPE GetItem(int index);
}
==========================================================
class TestItem
{
......(略)
};
template class Test: public Base <TestItem>
{
....(其他方法略)
}
在测试程序中写下如下代码
Test a;
a.count();
编译错误
去掉a.count()这行测试代码,编译正常,请问怎么回事?
[解决办法]
模板类的int count();的实现必须写在.h文件中。
或在类声明中直接写成int count(){ ...; return xxx;}
[解决办法]
template class Test: public Base <TestItem> 有问题。
class Test: public Base <TestItem>
模板类的声明和实现必须放在同一个文件中。