C++期末考试复习资料四

本文是一份C++期末考试复习资料,重点涵盖继承与派生的相关概念,如派生类、基类、公有继承、私有继承、保护继承、虚基类、构造函数与析构函数的执行顺序、访问权限等,并通过填空题、选择题、判断题等形式进行知识点巩固。适合备考C++的学生进行复习。
摘要由CSDN通过智能技术生成

一、填空题
1、如果类A继承了类B,则类A称为( )类,类B称为( )类。
2、在继承机制下,当对象消亡时,编译系统先执行( )的析构函数,然后才执行( )的析构函数。
3、继承发生在利用现有类派生新类时,其中( )称为基类,或( )类;( )称为派生类,或( )类。
4、在C++语言中,派生类继承了基类的全部数据成员和除( )之外的全部函数成员。
5、在公有继承关系下,派生类的对象可以访问基类中的( )成员,派生类的成员函数可以访问基类中的( )成员。
6、在保护继承关系下,基类的公有成员和保护成员将成为派生类中的( )成员,它们只能由派生类的( )来访问,基类的私有成员将成为派生类中的( )成员。
7、在私有继承关系下,基类的公有成员和保护成员将成为派生类中的( )成员,它们只能由派生类的( )来访问,基类的私有成员将成为派生类中的( )成员。
8、在C++中,设置虚基类的目的是( ),通过关键字( )来标识虚基类。
9、若类Y是类X的私有派生类,若类Z是类Y的公有派生类,则类Z( )访问类X的共有成员和保护成员。
10、如果一个类有两个或两个以上直接基类,则这种继承称为( )。
11、在继承关系中,( )称为单继承,( )称为多继承。
12、继承具有( ),即当基类本省也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
13、在公有继承中,基类中的公有成员作为派生类的( )。
14、派生类析构函数的执行顺序与构造函数的执行顺序( ),即先执行( )的析构函数,然后执行( )的析构函数,最后执行基类的析构函数。
15、由( )得到的派生类,其基类的所有公有成员都只能成为它的私有成员,这些私有成员只能被派生类的成员函数访问,而派生类的实例无权访问。
二、选择题
1、要用派生类的对象访问基类的保护成员,以下观点正确的是( )。
A. 不可能实现 B. 可采用保护继承
C. 可采用私有继承 D. 可采用共有继承
2、设有基类定义:
class Base
{
private:int a;
protected: int b;
public: int c;
};
派生类采用( )继承方式可以使成员变量b成为自己的私有成员。
A. 公有继承 B.保护继承
C. 私有继承 D. 私有、保护、公有均可
3、C++中类的用途有两种:一种是类的实例化,即生成类的对象;另一种是通过( )派生出新类。
A. 复用 B.继承 C. 封装 D. 引用
4、继承具有( ),即当基类本身也是某一类的派生类时,底层的派生类也会自动继承间接基类的成员。
A. 规律性 B.传递性 C. 重复性 D. 多样性
5、基类中的( )不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。
A. 公有成员 B.私有成员
C. 私有成员函数 D. 保护成员
6、下列关于基类和派生类关系的描述中,( )是错误的。
A. 派生类是基类的具体化 B. 派生类是基类的子集
C. 派生类是基类定义的延续 D. 派生类是基类的组合
7、下列关于继承的描述中,( )是错误的。
A. 析构函数不能被继承
B. 派生类是基类的组合
C. 派生类的成员除了它自己的成员外,还包括了他的基类的成员
D. 派生类中继承的基类成员的访问权限到派生保持不变
8、派生类的构造函数的成员初始化列表中,不能包含( )。
A. 基类的构造函数
B. 派生类中子对象的初始化
C. 基类的子对象的初始化
D. 派生类中一般数据成员的初始化
9、下列虚基类的声明中正确的是( )。
A. class virtual B:public A
B. virtual class B:public A
C. class B:public A virtual
D. class B: virtual public A
10、下列对派生类的描述中,( )是错误的。
A.一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D.派生类继承的基类成员的访问权限到派生类中保持不变
11、建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(子对象的构造函数)和c(派生类的构造函数),这3种构造函数的调用顺序为( )。
A.abc B.acb C.cab D.cba
12、阅读以下程序
class A
{ int x;
public: A(int xx){x=xx;}
};
class B:public A
{ int y;
public: B(int xx,int yy);
};
对构造函数B的定义中,正确的是( )
A、B::B(int xx,int yy):A(xx),B(yy){ }
B、B::B(int xx,int yy):x(xx),B(yy){ }
C、B::B(int xx,int yy):A(xx),y(yy){ }
D、B::B(int xx,int yy):x(xx),y(yy){ }
13、在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回类型( )
A、不同 B、部分相同 C、完全相同 D、没有要求
14、下列关于类的继承描述中,( )是正确的。
A、派生类可以访问基类的所有数据成员,调用基类的所有成员函数
B、派生类也是基类,所以基类具有派生类的全部属性和方法
C、继承描述类的层次关系,派生类不可以具有与基类相同的属性和方法
D、一个基类可以有多个派生类,一个派生类可以有多个基类
15、 当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( )。
A、public成员 B、private成员 C、protected成员 D、友员
16、下面描述中,错误的是( )。
A、在基类定义中的public成员在公有继承的派生类中可见,也能在类外被访问
B、在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C、在基类定义的public和prot

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值