第七章 习题

一、名词解析

函数模板:一个带类属参数的函数。

类模板:一个带类属参数的类。

模板函数  :通过参数实例化可以再构造出具体的函数。

模板类:通过参数实例化可以再构造出具体的类。

二、填空题

(1)C++支持两种模板,一种是     函数模板      ,另一种是    类模板               。

(2)关键字   template      是定义模板的关键字。

(3)<模板参数>中包含一个或多个用逗号分开的模板参数项,每一项由保留字      class      或者      typename    开始。

(4)重载函数模板便于定义     类属参数      或者函数参数的类型、个数不相同所进行的      类似     操作。

(5)函数模板实例化时,      没有    普通传值参数的类型转换机制。

(6)STL提供的容器是常用数据结构的     类模板    。

(7)STL容器类库包含7种基本容器。他们可以分成两组:       顺序容器    和   关联容器   。

(8)STL迭代器主要包括5种基本类别:   输入迭代器  、   输出迭代器   、  前向迭代器    、   双向迭代器    、  随机访问迭代器  。

三、选择题(至少选一个,可以多选)

(1)关于函数模板,描述错误的是(A)

A、函数模板必须由程序员实例化为可执行的模板函数

B、模板函数的实例化有编辑器实现

C、一个类定义中,只要有一个函数模板,则这个类是类模板

D、类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

(2)下列模板说明中,正确的是(A)

A、template<typename T1,typename T2>

B、template<class T1,T2>

C、template(class T1,class T2)

D、template(typename T1 ,T2)

(3)假设有函数模板定义如下:

template <typename T>

Max(T a,T b, T&c)

{c=a+b;}

下列选项正确的是(AB)

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; double y ,z;

Max(x,y,z);

(4)建立类模板对象的实例化过程为(C)

A、基类 ——>派生类                      B、构造函数——>对象         C、模板类——>对象          D、模板类——>模板函数

(5)下面(ABD)是标准模板库中的主要组件。

A、容器           B、迭代器                 C、文件                D、算法

四、判断题

(1)一个模板函数能够被相同函数名的另外模板函数重载。                                                  (对 )

(2)作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。                  ( 错)

(3)在类模板<模板参数表>中,必须至少有一个类参数。                                                    ( 对)

(4)在类模板<模板参数表>中,可以使用函数类型参数,该参数与普通函数参数的用法和功效完全相同。           ( 错)

(5)迭代器就是我们平常所用的指针。                                                                                   ( 错)

五、程序设计题

(1)用函数模板实现求整数、实现平方根的程序。


(2)设计一个类模板,然后将该类模板实例化为整数型和字符型类。利用类模板的成员函数为其数据成员赋值,并显示所赋给的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值