麻烦大家看一下错在哪里了?关于c++函数模板

#include<iostream>template<classT>TMAX(T*P);intmain(){usingnamespacestd;intsh[5];inti... #include<iostream>
template<class T>
T MAX(T *P);

int main()
{using namespace std;
int sh[5];
int i=0;
double ch[5];
cout<<"enter 5 int num"<<endl;
for( i=0;i<5;i++)
cin>>sh[i];
T max=MAX(sh);
cout<<max;
cout<<"enter 5 double num"<<endl;
for( i=0;i<5;i++)
cin>>ch[i];
T max=MAX(ch);
cout<<max;
return 0;
}
template <class T>
T MAX(T *P)
{T tem;
for(int i=0;i<5;i++)
if(tem<p[i])
tem=p[i];
return tem;
}
展开
 我来答
朋御天下
2011-09-29 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:40%
帮助的人:95.8万
展开全部
我不得不说,你基础很差,如果你是初学者,没必要开始就学模板,这是C++最NB的地方,也是最复杂精妙的地方。
首先(建议),在用指针作为参数时要有个传递尺寸的参数,保证程序的完整性与健壮性
其次,主函数中max重复声明
还有 ,模板函数中tem声明却没有赋值。
最后,命名空间的声明紧随所有头文件包含。
追问
你的建议(一)我不明白。你能把这个程序修改正确吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
135429617
2011-10-04 · 超过32用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:93.2万
展开全部
有很多的小问题,随便帮你改下,你自己对照,写程序注意细节
#include<iostream>
using namespace std;
template<class T>
T MAX(T *P);

int main()
{
int sh[5];
int i=0;
double ch[5];
cout<<"enter 5 int num"<<endl;
for( i=0;i<5;i++)
cin>>sh[i];
int imax=MAX(sh);
cout<<imax;
cout<<"enter 5 double num"<<endl;
for( i=0;i<5;i++)
cin>>ch[i];
double max=MAX(ch);
cout<<max;
system("pause");
return 0;
}
template <class T>
T MAX(T *p)
{T tem=p[0];
for(int i=1;i<5;i++)
if(tem<p[i])
tem=p[i];
return tem;
}
追问
怎么还有很多错误啊 
d:\program files\microsoft visual studio\myprojects\mo\m.cpp(26) : error C2065: 'p' : undeclared identifier
d:\program files\microsoft visual studio\myprojects\mo\m.cpp(14) : see reference to function template instantiation 'int __cdecl MAX(int *)' being compiled
m.obj - 1 error(s), 0 warning(s)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
书儒生
2011-10-01 · 超过16用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:35.6万
展开全部
max<double>(&sh)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhelin26
2011-09-29 · 贡献了超过100个回答
知道答主
回答量:100
采纳率:0%
帮助的人:24.8万
展开全部
((a)
追问
什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式