C实验报告实验7模板_第1页
C实验报告实验7模板_第2页
C实验报告实验7模板_第3页
C实验报告实验7模板_第4页
C实验报告实验7模板_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验7 模板一、实验目的和要求(1)能够使用c+模板机制定义重载函数。(2)能够实例化及使用函数模板。(3)能够实例化和使用类模板。(4)应用标准c+模板库(STL)通用算法和函数对象实现查找与排序。二、实验内容和原理(1)实验指导书P109 12任选一题。(2)实验指导书P112 34任选一题。三、实验环境联想计算机,Windows XP操作系统,Visual C+ 6.0四、算法描述及实验步骤(1)编写源程序。(2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。(3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。(4)运行程序,分析结果。(5)将调试好的程序保存在自己的

2、用户目录中,文件名自定。五、调试过程12六、实验结果127、 总结编译器匹配函数的过程A先寻找和使用最符合函数名和参数类型的特定模板函数,若找到则调用它B寻找一个函数模版,将其实例化产生一个匹配的模版函数,若找到则调用它C寻找可以通过类型转换进行参数匹配的重载函数,若找到则调用它8、附录:#include<iostream>using namespace std;template<class T>T max(T a,T b)return a>b?a:b;int main()cout<<"max(8,2)is"<<max(

3、8,2)<<endl;cout<<"max('8','2')is"<<max('8','2')<<endl;return 0;(2)#include<iostream>using namespace std;class Timepublic:Time()hours=0;minutes=0;seconds=0;Time(int h,int m,int s)hours=h;minutes=m;seconds=s;Time operator+(Time&am

4、p;);void gettime();private:int hours,minutes,seconds;Time Time:operator+(Time& time)int h,m,s;s=time.seconds+seconds;m=time.minutes+minutes+s/60;h=time.hours+hours+m/60;Time result(h,m%60,s%60);return result;void Time:gettime()cout<<hours<<":"<<minutes<<":&

5、quot;<<seconds<<endl;int main()Time t1(8,53,45),t2(12,24,32),t3;t3=t1+t2;t3.gettime();return 0;#include<iostream>using namespace std;const int size=10;template<typename AType>class Arraypublic:Array(AType* data)array=data;AType& operator(int n);void sort();private:AType*

6、array;template<typename AType>AType &Array<AType>:operator(int n)if(n<0|n>=size)cout<<"下标"<<n<<"超出范围!"<<endl;exit(1);return arrayn;template<typename AType>void Array<AType>:sort()AType t;int i,j;for(i=0;i<=size-1;i+)for

7、(j=size-1;j>i;j-)if(arrayj-1>arrayj)t=arrayj-1;arrayj-1=arrayj;arrayj=t;int main()int idatasize=6,3,4,10,5,8,12,19,7,13;char cdatasize='a','d','w','4','o','p','l','8','g','2'Array<int>intob(idata);Array<ch

8、ar>charob(cdata);cout<<"Initial integer array:"for(int i=0;i<size;i+)cout<<" "<<intobi;intob.sort();cout<<"nInteger array of after sorting:" for(i=0;i<size;i+)cout<<intobi<<" " cout<<"Initial char array:" for(i=0;i<size;i+)cout<<charobi<<" " charob.sort();cout<<"nChar ar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论