C++中关于template的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:41:22
我使用的是Visual studio 2005版本的,写了一个
#include "stdafx.h"
#include <iostream>
using namespace std;

template<class T>;
T moutmaxnum(T *a,int n)
{
T max=*a;
for(int i=1;i<n;i++)
{
if(*(a+i)>max)
max=*(a+i);
}
return max;
}
结果有error C2988: unrecognizable template declaration/definition错误,意思是说模版不存在。请问是不是要包含什么头文件才可以?还有,这个函数有没有问题呢?(是比较n个数大小的一个函数)

。。。吧template<class T>后面那个分号去掉就行了。

error C2988: unrecognizable template declaration/definition错误

这句话的意思是说不能识别模板的声明或者定义,那么你就要检查
自己到底是声明一个模板,还是定义一个模板,如果是声明,那哪里错了,如果是定义,那又是哪里错了,而楼主自己是在定义一个模板

显然,模板定义,template<class T>后是没有分号的,去掉即可

看看template 的函数模板和类模板的定义 还有重载

template<class T>之后多了一个;号,去掉就好了