资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
面向对象程序设计习题班级: 网络1412 学号: 143213600216 姓名: 张丽 名单序号: 成绩: 第3章 继承与派生一、选择题(共28分,每题1分)1下列对派生类的描述中,( D )是错误的。A 一个派生类可以作为另一个派生类的基类B 派生类至少有一个基类C 派生类的成员除了它自己的成员外,还包含了它的基类成员D 派生类中继承的基类成员的访问权限到派生类保持不变2派生类的对象对它的哪一类基类成员是可以访问的?( A )A公有继承的基类的公有成员 B. 公有继承的基类的保护成员C. 公有继承的基类的私有成员 D. 保护继承的基类的公有成员3关于多继承二义性的描述,( D )是错误的。A 派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性B 一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性C 解决二义性最常用的方法是作用域运算符对成员进行限定D 派生类和它的基类中出现同名函数时,将可能出现二义性4多继承派生类构造函数构造对象时,( B )被最先调用。A派生类自己的构造函数 B虚基类的构造函数C非虚基类的构造函数 D派生类中子对象类的构造函数5C+类体系中,能被派生类继承的是( B )。A构造函数 B虚函数 C析构函数 D友元函数6设有基类定义: class Cbase private: int a; protected: int b; public: int c;派生类采用何种继承方式可以使成员变量b成为自己的私有成员( A )A. 私有继承 B.保护继承C. 公有继承 D.私有、保护、公有均可7C+中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过( B )派生了新的类。 A.复用 B.继承 C.封装 D.引用8继承具有( B ),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。 A.规律性 B.传递性 C.重复性 D.多样性9下列对基类和派生类关系的描述中,错误的是( C )。A.派生类是基类的具体化 B.派生类是基类的子集C.派生类是基类定义的延续 D.派生类是基类的组合10下列对派生类的描述中,错误的是( C )。A. 一个派生类可以作为另一个派生类的基类B. 派生类至少有一个基类C. 派生类的缺省继承方式是privateD. 派生类只含有基类的公有成员和保护成员11下列对继承的描述中,错误的是( D )。A. 析构函数不能被继承B. 派生类也是基类的组合C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员D. 派生类中继承的基类成员的访问权限到派生类保持不变12派生类的对象对它的基类成员中( A )是可以访问的。A.公有继承的公有成员 B.公有继承的私有成员C.公有继承的保护成员 D.私有继承的公有成员13下列说法错误的是( B )。A. 公有继承的基类中的public成员在派生类中仍是public的B. 公有继承的基类中的private成员在派生类中仍是private的C. 私有继承的基类中的public成员在派生类中变成private的D. 保护继承的基类中的public成员在派生类中变成protected的14下面叙述错误的是( A )。A. 基类的protected成员在派生类中仍然是protectedB. 基类的protected成员在public派生类中仍然是protected的C. 基类的protected成员在private派生类中是private的D. D. 基类的protected成员不能被派生类的对象访问15C+类体系中,不能被派生类继承的有( A )。A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数16设置虚函数的声明中,正确的是( B )。A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码17下列虚基类的声明中,正确的是( D )。A.class virtual B:public A B.virtual class B:public AC.class B:public A virtual D.class B: virtual public A 18在下面的表达式中,不表示虚继承的是( C )。A.virtual public B.public virtual C.public D. virtual 19C+中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过( B )派生了新的类。A.复用 B.继承 C.封装 D.引用20继承具有( B ),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。A.规律性 B.传递性 C.重复性 D.多样性21下列对继承的描述中,错误的是( D )。A. 析构函数不能被继承B. 派生类也是基类的组合C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员D. 派生类中继承的基类成员的访问权限到派生类保持不变22派生类的对象对它的基类成员中( A )是可以访问的。 A.公有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.私有继承的公有成员23下面叙述错误的是( A )。A. 基类的protected成员在派生类中仍然是protectedB. 基类的protected成员在public派生类中仍然是protected的C. 基类的protected成员在private派生类中是private的D. 基类的protected成员不能被派生类的对象访问24设置虚函数的声明中,正确的是( B )。A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码25下列虚基类的声明中,正确的是( D )。A.class virtual B:public A B.virtual class B:public AC.class B:public A virtual D.class B: virtual public A26若要用派生类的对象访问基类的保护成员,以下观点正确的是( D ) A. 不可能实现 B. 可采用保护继承 C. 可采用私有继承 D. 可采用公有继承27 设有基类定义: class base private: int a; protected: int b; public: int c;派生类采用何种继承方式可以使成员变量c能被派生类的对象访问( C )A. 私有继承 B.保护继承C. 公有继承 D.私有、保护、公有均可28下列虚基类的声明中,正确的是( D )。 Aclass virtual B:public A Bvirtual class B:public ACclass B:public A virtual Dclass B: virtual public A二、填空题(共23分,每空1分)1C+将类继承分为 单继承 和 多继承 两种。2派生类可以定义其_基类_中不具备的数据和操作。3派生类构造函数的初始化列表中包含_基类构造函数_子类构造函数_。4在继承机制下,当对象消亡时,编译系统先执行 派生类 的析构函数,然后才执行 子类 的析构函数,最后执行 基类 的析构函数。5设有以下类的定义:class A class B: protected A class C: private B int A1; int b1; int c1;protected: int A2; protected: int b2; protected: int c2;public: int A3; public: int b3; public: int c3; ; ;请按访问权限写出派生类C中具有的成员。私有成员: a1 a2 a3 b1 b2 b3 保护成员: c2 公有成员: c3 。6生成一个派生类对象时,先调用 基类 的构造函数,然后调用 派生类 的构造函数。7继承发生在利用现有类派生新类时,其中 现有类 称为基类,或 父类 类; 新类 称为派生类,或 子 类。8在继承关系中, 派生类继承多个基类 称为多重继承, 派生类继承派生类 称为多层继承。9在公有继承关系下,派生类的对象可以访问基类中的 public 成员,派生类的成员函数可以访问基类中的 public和protected 成员。10在保护继承关系下,基类的公有成员和保护成员将成为派生类中的 保护 成员,它们只能由派生类的 成员函数 来访问;基类的私有成员将成为派生类中的 不可见 成员。三、改错题(共6分,每题3分)1指出并改正下面程序中的错误。#includeclass Point int x,y; public: Point(int a=0,int b=0) x=a; y=b; void move(int xoffset,int yoffset) x+=xoffset; y+=yoffset; int getx() return x; int gety() return y;class Rectangle:protected Point int length,width; public: Rectangle(int x,int y,int l,int w):Point(x,y)
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号