收藏 分享(赏)

实验7 模板.doc

上传人:hskm5268 文档编号:8771432 上传时间:2019-07-11 格式:DOC 页数:5 大小:44.50KB
下载 相关 举报
实验7  模板.doc_第1页
第1页 / 共5页
实验7  模板.doc_第2页
第2页 / 共5页
实验7  模板.doc_第3页
第3页 / 共5页
实验7  模板.doc_第4页
第4页 / 共5页
实验7  模板.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验 8 模板1、 实验目的和要求: 理解函数模板、类模板 应用模板函数、模板类2、 实验内容一、基本概念题1、 下列对模板的声明,正确的是_。 A)template B)template C)template D)template 2、 一个_允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。 A)函数模板 B)模板甲数 C)类模板 D)模板类 3、 类模板的模板参数_。 A)只可作为数据成员的类型 B)只可作为成员函数的返回类型 C)只可作为成员函数的参数类型 D)以上三者皆可 4、 下列程序段中有错的是_。 A)template B)Type C)fun

2、c(Type a,b) D)return (ab)?(a):(b); 5、 模板是实现类属机制的一种工具,其功能非常强大,它既允许用户构造类属函数,即_:也允许用户构造类属类 ,即_。 A)模板函数 B)函数模板 C)模板类 D)类模板 6、 类模板的使用实际上是将类模板实例化成一个具体的_。 A)类 B)对象 C)函数 D)模板类7、 关于函数模板,描述错误的是( )A) 函数模板必须由程序员实例化为可执行的函数模板B) 函数模板的实例化由编译器实现C) 一个类定义中,只要有一个函数模板,则这个类是类模板D) 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化8、 下列的模板

3、说明中,正确的是( ) (两个答案)A) template B) template C) template D) template 9、 假设有函数模板定义如下:Template Max(T a, T b, T 下列选项正确的是( ) (两个答案)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) 类模板从普通类派生,也可以从类

4、模板派生C) 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类D) 函数的类模板参数须通过构造函数实例化11、建立类模板对象的实例化过程为( )A) 基类派生类 B) 构造函数对象C) 模板类对象 D) 模板类模板函数12、需要一种逻辑功能能一样的函数,而编制这些函数的程序文本完全一样,区别只是数据类型不同。对于这种函数,下面不能用来实现这一功能的选项是() A)宏函数 B)为各种类型都重载这一函数 C)模板 D)友元函数二、程序设计题1)设计函数模板求出数组的最小值,其中数组为具有 n 个元素,类型为 T。对以下数组进行测试int a 10 = 1,3,5,7,9double d3

5、 = -1.1, -2.2, -3.3char* name = “linda”,”lelele”,”linlin”2)用类模板方式设计一个栈类 stack,其中数据存储结构用动态数组实现,类中包含两个私有数据成员:T* s(存放栈元素)和 top(栈顶元素下标) ,至少包含 3 个公有成员函数:push(元素入栈) 、pop(元素出栈)和 stackempty(判断栈是否为空) ,并建立一个整数栈和学生栈测试模板。3)编写并使用安全数组类模板 BoundArray,能够存储各种类型的数据。 实现对数组进行排序 sort和查找某个元素 T key 的方法 search。 重载、, BoundAr

6、ray, BoundArray和 BoundArray4) (选作) 编写并使用链表模板类 List5) 阅读程序,了解 STL 中 vector 容器的使用方法/测试 STL 中的 vector 容器#include #include using namespace std;/测试 vector 容器的功能int main( )vector vec1; /vec1 对象初始为空/ 插入与删除元素vec1.push_back(2); vec1.push_back(4);vec1.push_back(3);vec1.push_back(8);cout vec2(10,6); /vec2 对象最初

7、有 10 个值为 6 的元素vec2.push_back(7); vec2.pop_back( );vec2.assign(8,1);/显示序列的状态信息cout :iterator i;/声明一个名为 i 的双向迭代器 vector vec3(vec2.begin( ),vec2.begin( )+3); /vec3 对象最初有 3 个值为 6 的元素 / vector vec3(a,a+3); /int a=1,2,3,4,5,6;/从前向后显示 vec3 中的数据cout endl “vec3.begin( )-vec3.end( ):“ endl;for (i =vec3.begin(

8、 ); i !=vec3.end( ); +i)cout *i “ “;cout endl;/测试添加和插入成员函数 vec3.insert(vec3.begin( )+1,5); vec3.insert(vec3.begin( )+1,vec1.begin( ),vec1.end( );/测试移出和删除vec3.pop_back( );vec3.erase(vec3.begin( )+1,vec3.end( )-2);cout “vec1.pop_back( ) and vec1.erase( ):“ endl;for (i =vec3.begin( ); i !=vec3.end( ); +i)cout *i “ “;cout endl;return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报