2004-2005 学年 C++程序设计语言试题
一、 概念题(每小题 5 分,共 8 题,40 分)
1、 定义一个指向函数的指针
2、 It(val):可以有多少种解释?
3、 解释 iterator 的作用()
4、 解释动态绑定的概念(P137)
5、 如果某个类的定义中有 char *这样的私有数据成员,该类在定义的时候应该注意一些什
们问题?
6、 请解释 Triangular 和 Triangular_iterator 之间的数据访问方案
7、 写一个函数模板
8、 请给出可以被抛出的异常类的体系
9、 解释多态性概念,说明程序“普遍化”的优点
10、解释类模板和继承关系
11、解释友元关系,并讨论其应用范围
12、如果要求一个函数的返回值必须是 bool 类型,但同时还须返回另外一个计算结果,如
何做到呢?
13、从如下的片段中你知道多少信息
template <typename T>
T& Func::foo(T &rt) { return rt;}
14、比较 Arrays 和 Vector 的异同点。
二、 解决问题(每小题 7 分,共 5 题,35 分)
1、 写一个过滤器的泛型实现(P86-P87)
2、 提供一个基类成员函数访问派生类私有数据成员的方案(派生类中没有访问该数据成
员的公共接口,不准用 friend)
3、 举例说明一般情况下如何运用继承和多态来进行面向对象的程序设计
4、 举例说明在派生类中未能正确定义虚拟函数而产生的结果
5、 编写一个在发生异常后还可以返回到正常处理轨迹的程序轮廓
6、 举例说明 const 对象有助于实现软件工程的最低权限原则以及初始化
7、 举例说明 is a 关系和 has a 关系
8、举调用复制构造函数的三种情况
参考答案:构造函数被调用通常发生在以下三种情况,第一种情况就是用一个对象初始化
另一个对象时,比如 c2 = c1;第二种情况是当对象作函数参数,实参传给形参时;第三
种情况是程序运行过程中创建其它临时对象时。
三、 编制程序
1、 请给出满足下述测试程序的类 B 的定义,其输出结果为 3。
Int main()