如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C++面向对象程序设计检测试题(二)继承与派生班级:学号:姓名:注:本试卷,满分100分,考试时间120分钟一、选择题(每题3分,共30分)下列对派生类的描述中,()是错误的。A.、一个派生类可以做另一个派生类的基类B、派生类至少有一个基类C、派生类的成员除了它自己的成员外,还包含了他的基类的成员D.派生类中继承的基类的成员的访问权限到派生类保持不变2.继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员A.规律性B、传递性C、重复性D、多样性3.对基类和派生类的关系描述中,()是错误的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、可采用公有继承B、可采用私有继承C、可采用保护继承D、不可能实现10.设置虚基类的目的是()A、简化程序B、消除二义性C、提高运行效率D、减少目标代码二、判断题(每题2分,共10分)1.在私有继承中,基类中所有成员函数对间接派生类的对象都是不可见的。()2.公有继承的对象时可以访问基类的私有成员的。()3.构造函数和析构函数都不能被继承()4.单继承情况,派生类中对基类成员的访问也会出现二义性。()5.虚基类是用来解决多继承中公有积累在派生类中只产生一个基类成员对象的问题()三、填空题(每题2分,共10分)1.一个类可以从直接类或间接类的祖先中继承所有属性和方法。采用这个方法提高了软件的2.如果一个派生类只有一个唯一的基类,则这样的继承关系称为3.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先调用构造函数,再执行调用的构造函数(如果有的话),最后执行派生类的构造函数体中的内容。4.通过C++语言中类的,可以扩充和完善已有类以适应新的要求。5.不同对象可以调用相同名称的函数,但导致完全不同的行为的现象称为四、写出下列程序的运行结果(前三题每题5分,第四题10分,共计25分)。1.派生类的构造函数和析构函数的用法#include<iostream.h>classPoint{public:Point(inta,intb){X=a;Y=b;cout<<"PointConstructor.\n";}showXY(){cout<<"X="<<X<<",Y="<<Y<<endl;}~Point(){cout<<"DeletePoint.\n";}private:intX,Y;};classRectangle:publicPoint{public:Rectangle(inta,intb,intc,intd,inth,intw):Point(a,b),p(c,d){H=h;W=w;cout<<"Rectangle.\n";}~Rectangle(){cout<<"DeleteRectangle.\n";}voidshow(){p.showXY();cout<<"H="<<H<<",W="<<W<<"\n";}private:intH,W;Po