关于C++模板类型,请教
#include"iostream"template<typenamet>tmax5(t&a);usingnamespacestd;intmain(){intb1[5]=...
#include "iostream"
template <typename t>
t max5(t&a);
using namespace std;
int main()
{
int b1[5]={1,2,3,4,9};
double b3;
b3=max5(b1);//这里提示没有与参数列表匹配的函数模板
return 0;
}
template <typename t>
t max5(t&a)
{
t b=0;
for(int i=0,i<5,i++)
{
if(a[i]>b)
b=a[i];
}
return b;
}
刚接触模板,有点不明白,求指导
这个函数的意思是比较数组中最大值并返回, 展开
template <typename t>
t max5(t&a);
using namespace std;
int main()
{
int b1[5]={1,2,3,4,9};
double b3;
b3=max5(b1);//这里提示没有与参数列表匹配的函数模板
return 0;
}
template <typename t>
t max5(t&a)
{
t b=0;
for(int i=0,i<5,i++)
{
if(a[i]>b)
b=a[i];
}
return b;
}
刚接触模板,有点不明白,求指导
这个函数的意思是比较数组中最大值并返回, 展开
展开全部
模板就是一个印子,实例化的时候就是套数据类型的。比如你的main函数里面b3=max5(b1)。b1是int型数组,所以,套用模板定义的模板函数,就是这个意思。同理,你也可以定义其他类型的数组或指针进行函数的套用。
模板函数就是将相同功能,不同数据类型的函数写成是一个函数,函数定义时是用抽象数据类型。
模板具有模板函数和模板类。
不知道你是不是这点不明白,希望能帮到你。
模板函数就是将相同功能,不同数据类型的函数写成是一个函数,函数定义时是用抽象数据类型。
模板具有模板函数和模板类。
不知道你是不是这点不明白,希望能帮到你。
追问
这个我了解,不过我是没搞明白,为什么这个函数在b3=max5(b1)这里提示,没有与参数列表相匹配的模板,怎么处理!
追答
你的max5用的是传地址形参,而调用的时候是数组。我这里没有环境。你把数组换成普通变量应该就没有问题了。试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就先用int 然后再把所有的int 换成泛型 T ,意思就是T可以指任意某一种统一的类型 比如double,float,short ,int等等……
更多追问追答
追问
还是不行,error C2975: “max5”:“unnamed-parameter”的模板参数无效,应为编译时常量表达式
还是那句没有与参数列表匹配的模板
追答
泛型是一种类型,它也可以是int *
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-02-20
展开全部
在max5函数中你想做什么?a[i]>b,你要把一个int变量与int*变量作比较?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询