函数模板中函数参数的声明?
在函数模板中,是不是函数的所有参数都必须在模析的参数中声明 问题点数:20、回复次数:11Top
1 楼tttzms(乡巴佬)回复于 2003-08-04 20:28:53 得分 0
当然同一种类型的参数类型可只声明一次Top
2 楼a_stupid_boy()回复于 2003-08-04 20:36:37 得分 4
因该市这样吧Top
3 楼tttzms(乡巴佬)回复于 2003-08-04 20:41:32 得分 0
????????????????????????????????????????????????????????????????????????????????
附加:?
如果,已知了函数中的一个参数一定为某种类型,如整型,是不是一定要在模板参数中声明一个模板非类型参数,或者可以省掉?????
Top
4 楼tttzms(乡巴佬)回复于 2003-08-04 21:09:14 得分 0
up一下Top
5 楼eric8231(1328cire)回复于 2003-08-04 23:28:06 得分 3
如果你希望把(例如)整形这样的非“类类型”作为模板函数的模板参数,那么就必须在模板参数表中有所声明~Top
6 楼wandengfeng(wandf)回复于 2003-08-04 23:37:14 得分 3
声明:
template<class Type>Type Max(Type v1,Type v2)
{
return (v1>v2)?v1:v2;
}
使用:
int m1=max(100,200); //编译器自动判别为int类型Top
7 楼tttzms(乡巴佬)回复于 2003-08-05 14:15:00 得分 0
有点不太明白,再请问一次
?????????????????????????????????????????????????????????????????????
如下声明是不是对的
template<class tyep>
type max(type v1,int v2)
{
.......
}Top
8 楼tttzms(乡巴佬)回复于 2003-08-05 14:15:43 得分 0
哦前一个type 打成了tyep 不好意思Top
9 楼aflyinghorse()回复于 2003-08-05 15:13:20 得分 5
是对的
允许有非类型的参数,你的例子里就是intTop
10 楼jyfcsdn()回复于 2003-08-05 16:20:39 得分 5
定义范形函数,没有强制限定必要把所有参数的类型都参数化,也就是把参数类型都作为模板类型。所以你定义
template<class tyep>
type max(type v1,int v2)
{
.......
}
是完全正确的。
Top
11 楼tttzms(乡巴佬)回复于 2003-08-05 19:04:27 得分 0
谢谢各位Top




