我有这个班级
template <class T> class dynamic_array
{
和这个功能:
void dynamic_array::randorder()
{
srand(time(NULL));
int *ap;
for(ap=array;k!=array+size;++k){*k=rand();}
}
编译器抱怨我的功能 - “没有模板参数”。我该如何添加?
答案 0 :(得分:8)
template <class T>
void dynamic_array<T>::randorder()
{
srand(time(NULL));
for(int *ap = array; k != array + size; ++k)
{
*k = rand();
}
}
答案 1 :(得分:3)
应该是
template <class T>
void dynamic_array<T>::randorder()
{
...
}
另外,请记住,如果需要在不同的.cpp文件中使用它,必须将定义放入头文件中。
我认为array
必须是T
类型的数据成员,因此以下内容不适用。但总的来说,如果您发现类模板的某些成员函数不依赖于模板参数,那么将它们分解为非模板基类是有意义的。它减少了可执行文件的大小,使您的生活更轻松。