首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关模板的有关问题

2012-02-22 
有关模板的问题~//用C++编写一个函数模板,对不同类型的数组求平均值。在main函数中分别求一个整型数组和一

有关模板的问题~
//用C++编写一个函数模板,对不同类型的数组求平均值。在main函数中分别求一个整型数组和一个单精度浮点型数组的平均值。
/*   average.h   */  
#ifndef   AVERAGE_H
#define   AVERAGE_H
template <class   T>  
T   average(T   a[],int   n)  
{  
T   averValue,sum=0;  
for(int   i=0;i <n;i++)  
sum+=a[i];  
averValue=sum/n;  
return   averValue;  
}  
#endif

#ifndef   DISPLAY_H
#define   DISPLAY_H
template <class   T>  
void   display(T   a[],int   n)  
{  
cout < < "数组元素如下所示:\n ";  
for(int   i=0;i <n;i++)  
cout < <a[i] < < "\t ";  
cout < <endl;  
}  
#endif

#include <iostream.h>  
#include "average.h "
#include   "display.h "
void   main()  
{  
int   a[]={1,3,6,7,2,9};  
float   b[]={1.3,2.8,6.9,7.1,5.6};  
display(a,sizeof(a)/sizeof(int));  
cout < < "该数组的平均值为: " < <average(a,sizeof(a)/sizeof(int)) < <endl;  
display(b,sizeof(b)/sizeof(float));  
cout < < "该数组的平均值为: " < <average(b,sizeof(b)/sizeof(float)) < <endl;  

}  


上面这段程序中,为什么编译时总是显示#include "average.h "出错,,,,,但如果把#include "average.h "
和#include   "display.h "
放在头文件的另一个文件夹中编译时,就能通过,,,我想知道的是为什么,,,,
谢谢!




[解决办法]
#include "average "
#include "average "
[解决办法]
帮你改了一下,现在才明白你做什么,在vc下编译通过
/* average.h */
#include <iostream.h>

template <class T>
T average(T a[],int n)
{
T averValue,sum=0;
for(int i=0;i <n;i++)
sum+=a[i];
averValue=sum/n;
return averValue;
}

template <class T>
void display(T a[],int n)
{
cout < < "数组元素如下所示:\n ";
for(int i=0;i <n;i++)
cout < <a[i] < < "\t ";
cout < <endl;
}


void main()
{
int a[]={1,3,6,7,2,9};
float b[]={1.3,2.8,6.9,7.1,5.6};
display(a,sizeof(a)/sizeof(int));
cout < < "该数组的平均值为: " < <average(a,sizeof(a)/sizeof(int)) < <endl;
display(b,sizeof(b)/sizeof(float));
cout < < "该数组的平均值为: " < <average(b,sizeof(b)/sizeof(float)) < <endl;

}

热点排行