读书人

模版函数求高手给详细的讲解一下教科

发布时间: 2012-03-29 12:53:12 作者: rapoo

模版函数求高手给详细的讲解一下,教科书上的东西看不明白!代码见正文!
#include "stdafx.h"
template<class T>
T min(T a[],int n)
{
int i;
T minv=a[0];
for(i=1;i<n;i++)
if(minv>a[i])
minv=a[i];
return minv;
}
int main(void)
{
int a[]={1,3,0,2,7,6,4,5,2,};
double b[]={1.2,-3.4,6.8,9,8};
cout<<"a数组的最小值为:"<<min(a,9)<<endl;
cout<<"b数组的最小值为:"<<min(b,4)<<endl;
return 0;
}
以这个为例吧!模版函数怎么实例化的啊?T minv=a[0];是什么意思?template<class T> class T是什么意思?T min(T a[],int n)这两个T又什么意思?

[解决办法]
多看几次就明白了!
[解决办法]
template<class T> 就是定义一个模版

T minv=a[0];是什么意思?
T 是类型,可以是int ,可以是float 或其他(这也是模版的主要作用,可以代替很多类型)
T minv=a[0]; 是该类型的一个数组。

template<class T> class T是什么意思?

说明 T 能够作为模版。。。。
T min(T a[],int n)这两个T又什么意思?

和上面一个道理 , 意思是T 可以是各种类型的,看函数用到的时候具体的类型。


大概是这样 ~~~~~
[解决办法]
楼主用的哪本教科书?
[解决办法]
template<class T> 就是定义一个模版 固定的形式,记住就好了。
还有那个T就是你所要操作的数据的数据类型。。。
例如:

T min(T a[],int n) 当你在实例化的时候,你所操作的数组的类型为 int 型,那么你在实例化的时候就可以把这个看作是 int min(int a[],int n)。

实例化其实就是拿你当前要操作的数据类型去替换掉T。

读书人网 >C++

热点推荐