第十一章 继承与派生 复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十一章继承与派生复习题
1. 下面叙述错误的是( )
A. 派生类可以使用private派生
B. 对基类成员的访问必须是无二义性的
C. 基类成员的访问能力在派生类中维持不变
D. 赋值兼容规则也适用于多继承的组合
2.派生类的对象对它的基类成员进行访问,可以采用对象.或者对象指针-〉的
方式访问的是( )
A. 公有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 私有继承的公有成员
3. 当私有继承时,在派生类中成为私有成员,不能通过派生类的对象来直接访
问该成员是基类的()
A. 任何成员
B.公有成员和保护成员
C. 保护成员和私有成员
D.私有成员
4. C++的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运
行;另一种是通过()
A. 复用派生出新的类
B. 继承派生出新的类
C. 封装派生出新的类
D. 引用派生出新的类
5.当保护继承时,在派生类中成为保护成员,不能通过派生类的对象来直接访
问的成员是基类的()
A.任何成员
B.公有成员和保护成员
C.保护成员和私有成员
D.私有成员
6.类B的数据成员中“有一个”A类的对象,这种类之间的关系是( )
A.继承关系
B.间接关系
C.组合关系
D.直接关系
7. 派生类的构造函数的成员初始化列表中,不能包含( )
A. 基类的构造函数
B. 派生类中子对象的初始化
C. 基类中子对象的初始化
D. 派生类中一般数据成员的初始化
8 公有成员提供了类对外部的接口,私有成员是类的内部实现,而不允许外界
访问,但允许派生类访问的成员是( )
A. 公有成员
B. 私有成员
C. 私有成员
D. 保护成员
9. 当公有继承时,在派生类中成为保护成员,不能通过派生类的对象来直接访
问的成员是基类的( )。
A.任何成员
B.公有成员和保护成员
C.保护成员和私有成员
D.保护成员
10. 类B的对象必定是类A的对象,但是类A的对象却不属于类B,则类B和
类A之间的关系是( )
A.组合关系
B.间接关系
C.继承关系
D.直接关系
11. 派生可以分为公有派生和私有派生。由私有派生得到的派生类,其基类的所
有公有成员都只能成为它的( )
A. 公有成员
B. 私有成员
C. 保护成员
D.公有成员或保护成员
12. 当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类
的成员,即继承具有( )
A. 规律性
B. 传递性
C. 重复性
D. 多样性
13. 利用继承能够实现。这种实现缩短了程序的开发时间,促使
开发人员复用已经测试和调试好的高质量软件。软件复用
14 在类中定义和实现的函数称为。当撤消一个含有基类和子对象
成员的派生类对象时,将首先完成的析构函数定义体的执行。成员函数; 派生类
15. 继承情况下,派生类的构造函数的执行顺序取决于派生类时
所指定的各基类的顺序。定义
16. 当用protected继承类时,基类的public成员成为派生类的成员,protected成员成为派生类的成员。28. protected protected
17. 派生类的对象可作为基类的对象处理,派生类对象指针不能指向对象。
基类
18. 在面向对象的程序设计中,通过封装实现数据隐藏;通过实
现代码的复用。类继承中,缺省的继承方式是。继承私有继承
19.仔细阅读程序,写出其运行结果。
#include
using namespace std;
class Student
{public:
void get_value();
void display( );
protected :
int num;
char name[10];
char sex;
};
void Student::get_value()
{num=1;strcpy(name,"abcd");sex='f';}
void Student::display( )
{cout<<"num: "< cout<<"name: "< cout<<"sex: "< } class Student1: protected Student {public: void get_value_1(); void display1( ); private: int age; }; void Student1::get_value_1() {get_value(); age=20; } void Student1::display1( ) {cout<<"num: "< cout<<"name: "< cout<<"sex: "< cout<<"age: "< }