大一C++第八章习题答案.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:2 大小:28KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

大一C++第八章习题答案.doc

大一C++第八章习题答案.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

[8_1]为什么使用摸板?函数摸板声明的一般形式是什么?摸板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码重用。使用摸板可以大幅度地提高程序设计的效率。函数摸板的一般说明形式如下:template<class类型参数>返回类型函数名(摸板形参表){函数体}其中,template是一个声明摸板的关键字,它表示声明一个摸板。类型参数前需要加关键字class(或typename).[8_2]函数模板与同名的非模板函数重载时,调用的顺序是怎样的?(1)寻找一个参数完全匹配的函数,如果找到了就调用它。(2)寻找一个函数模板,将其实例化,产生一个匹配的模板函数,若找到了,就调用它。(3)若(1)和(2)都失败了,再试一试低一级的对函数的重载方法,例如通过类型转换可产生参数匹配等,若找到了,就调用它。若(1)(2)(3)均未找到匹配的函数,则是一个错误的调用。如果在第(1)步有多于一个的选择,那么这个调用是意义不明确的,是一个错误调用。[8-15]#include<iostream.h>template<classType>Typemax(Type*Array,intsize){inti,j=0;for(i=1;i<size-1;i++)if(Array[i]>Array[j]){j=i;}returnArray[j];}voidmain(){intintArray[]={11,12,13,14,7,8,9};doubledArray[]={11.2,12.3,13.2,14.5,14.8,8.7,9.3};cout<<max(intArray,7)<<endl;cout<<max(dArray,7)<<endl;}[8-16]#include<iostream.h>template<classType>voidsort(Type*Array,intsize){inti,j;for(i=0;i<size-1;i++)for(j=0;j<size-i-1;j++)if(Array[j]>Array[j+1]){Typetemp=Array[j];Array[j]=Array[j+1];Array[j+1]=temp;}}voidmain(){intintArray[]={11,12,13,14,7,8,9};inti;sort(intArray,7);cout<<endl;for(i=0;i<7;i++)cout<<intArray[i]<<endl;}