- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验7 模板
实验8 模板
实验目的和要求:
理解函数模板、类模板
应用模板函数、模板类
实验内容
一、基本概念题
1、 下列对模板的声明,正确的是_________。
A)templateT
B)templateclass T1,T2
C)templateclass T1,class T2
D)templateC1ass T1,class T2
2、 一个_________允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
A)函数模板
B)模板甲数
C)类模板
D)模板类
3、 类模板的模板参数_________。
A)只可作为数据成员的类型
B)只可作为成员函数的返回类型
C)只可作为成员函数的参数类型
D)以上三者皆可
4、 下列程序段中有错的是_________。
A)template Class Type
B)Type
C)func(Type a,b)
D){return (ab)?(a):(b);}
5、 模板是实现类属机制的一种工具,其功能非常强大,它既允许用户构造类属函数,即___①___:也允许用户构造类属类,即___②___。
A)模板函数
B)函数模板
C)模板类
D)类模板
6、 类模板的使用实际上是将类模板实例化成一个具体的_________。
A)类
B)对象
C)函数
D)模板类
7、 关于函数模板,描述错误的是( )
A) 函数模板必须由程序员实例化为可执行的函数模板
B) 函数模板的实例化由编译器实现
C) 一个类定义中,只要有一个函数模板,则这个类是类模板
D) 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
8、 下列的模板说明中,正确的是( )(两个答案)
A) template typename T1, typename T2
B) template class T1, T2
C) template class T1, class T2
D) template typename T1; typename T2
9、 假设有函数模板定义如下:
Template typename T
Max(T a, T b, T c)
{ c=a+b; }
下列选项正确的是( )(两个答案)
A) float x,y; float z; Max(x,y,z);
B) int x,y,z; Max(x,y,z);
C) int x,y; float z; Max(x,y,z);
D) float x; int y, z; Max(x,y,z);
10、关于类模板,描述错误的是( )
A) 一个普通基类不能派生类模板
B) 类模板从普通类派生,也可以从类模板派生
C) 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
D) 函数的类模板参数须通过构造函数实例化
11、建立类模板对象的实例化过程为( )
A) 基类派生类 B) 构造函数对象
C) 模板类对象 D) 模板类模板函数
12、需要一种逻辑功能能一样的函数,而编制这些函数的程序文本完全一样,区别只是数据类型不同。对于这种函数,下面不能用来实现这一功能的选项是()
A)宏函数
B)为各种类型都重载这一函数
C)模板
D)友元函数
二、程序设计题
1)设计函数模板求出数组的最小值,其中数组为具有n个元素,类型为T。对以下数组进行测试
int a[ 10 ] = { 1,3,5,7,9}
double d[3] = {-1.1, -2.2, -3.3}
char* name = {“linda”,”lelele”,”linlin”}
2)用类模板方式设计一个栈类stackT,其中数据存储结构用动态数组实现,类中包含两个私有数据成员:T* s(存放栈元素)和top(栈顶元素下标),至少包含3个公有成员函数:push(元素入栈)、pop(元素出栈)和stackempty(判断栈是否为空),并建立一个整数栈和学生栈测试模板。
3)编写并使用安全数组类模板BoundArray,能够存储各种类型的数据。
实现对数组进行排序sortT和查找某个元素T key的方法searchT。
重载=、[]、、==
产生并测试以下模板类:
BoundArrayint, BoundArraychar, BoundArrayBox和BoundArrayStu
4)(选作) 编写并使用链表模板类List
5) 阅读程序,了解STL中vector容器的使用方法
//测试STL中的vector容器
#include iostream
#inc
文档评论(0)