欢迎来到天天文库
浏览记录
ID:26565502
大小:238.35 KB
页数:26页
时间:2018-11-27
《c程序设计教程与实验指导杨国兴模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++语言程序设计杨国兴张东玲彭涛中国水利水电出版社第7章模板7.1函数模板7.2模板函数的覆盖7.3类模板7.1函数模板1.问题的提出重载函数可以解决功能相同或相似的函数使用同一个函数名的问题。voidswap(char&x,char&y){chart=x;x=y;y=t;}voidswap(int&x,int&y){intt=x;x=y;y=t;}第7章模板voidswap(float&x,float&y){floatt=x;x=y;y=t;}实际代码量并未减少。可使用函数模板减少大量代码。7.1函数模板2.函数模板的定义template或类型名函数名(参数表
2、){函数体}函数模板就像是一个带有类型参数的函数(参数T即为类型),编译程序会根据实际参数的类型确定参数的类型。第7章模板template类型名函数名(参数表){函数体}例7.1定义用于变量交换的函数模板#includeusingnamespacestd;templatevoidswap(T&x,T&y){Ttemp=x;x=y;y=temp;}voidmain(void){chara='A',b='B';intc=123,d=456;doublex=12.3,y=45.6;swap(a,b);swap(c,d);swap
3、(x,y);cout<4、。第7章模板例7.2(续一)templatevoidInsertionSort(TA[],intn){inti,j;Ttemp;for(i=1;i0&&temp=A[j-1]结束循环时,j便是应插入的位置//当遇到j==0结束循环时,则0是应插入的位置。A[j]=A[j-1];//将元素逐个后移,以便找到插入位置时可立即插入。j--;}A[j]=temp;}}第7章模板例7.2(续二)#inclu5、deusingnamespacestd;voidmain(){inta[10]={2,4,1,8,7,9,0,3,5,6};doubleb[10]={12.1,24.2,15.5,81.7,2.7,5.9,40.3,33.3,25.6,4.6};InsertionSort(a,10);InsertionSort(b,10);cout<6、t<usingnamespacestd;templateTmax(Ta,Tb){returna>b?a:b;}voidmain(void){inta=max7、(10.5,20);doubleb=max(10,20.6);cout<Tmax(Ta,Tb){retuma>b?a:b;}对于简单
4、。第7章模板例7.2(续一)templatevoidInsertionSort(TA[],intn){inti,j;Ttemp;for(i=1;i0&&temp=A[j-1]结束循环时,j便是应插入的位置//当遇到j==0结束循环时,则0是应插入的位置。A[j]=A[j-1];//将元素逐个后移,以便找到插入位置时可立即插入。j--;}A[j]=temp;}}第7章模板例7.2(续二)#inclu
5、deusingnamespacestd;voidmain(){inta[10]={2,4,1,8,7,9,0,3,5,6};doubleb[10]={12.1,24.2,15.5,81.7,2.7,5.9,40.3,33.3,25.6,4.6};InsertionSort(a,10);InsertionSort(b,10);cout<6、t<usingnamespacestd;templateTmax(Ta,Tb){returna>b?a:b;}voidmain(void){inta=max7、(10.5,20);doubleb=max(10,20.6);cout<Tmax(Ta,Tb){retuma>b?a:b;}对于简单
6、t<usingnamespacestd;templateTmax(Ta,Tb){returna>b?a:b;}voidmain(void){inta=max
7、(10.5,20);doubleb=max(10,20.6);cout<Tmax(Ta,Tb){retuma>b?a:b;}对于简单
此文档下载收益归作者所有