C++习题3(继承和多态)_第1页
C++习题3(继承和多态)_第2页
C++习题3(继承和多态)_第3页
C++习题3(继承和多态)_第4页
C++习题3(继承和多态)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习3一、选择题1.在C语言中,类之间的继承关系有(C)a)自反性b)对称性c)传递性d)反对称性2.在公共继承的情况下,派生类中基类成员(私有成员除外)的访问权限a)受限b)不变c)受保护d)未受保护3.根据解释中的要求,下列程序下划线部分要填写的正确句子是:(c)#包括类别基础public:void fun() cout Base : FuN fun();4.在保护继承的条件下,派生类中基类成员(私有成员除外)的访问权限(c)a)受限b)不变c)受保护d)未受保护5.在哪个派生方法中,派生类可以访问基类中的受保护成员(b)a)公共和私人B)公共、受保护和私人c)受保护和私有D)仅受保护6.当只受保护的派生类继承基类时,基类中的所有公共成员都成为派生类的(c)a)公共成员B)私人成员C)受保护成员d)朋友7.无论派生类如何继承基类,它们都不能使用基类的(b)a)公共成员B)私人成员C)受保护成员D)公共成员和受保护成员下面的陈述是错误的。a)基类的受保护成员在派生类中仍然受保护b)基类的受保护成员仍然在公共派生类中受到保护c)基类的受保护成员在私有派生类中是私有的d)基类的受保护成员不能被派生类的对象访问9.以下陈述是错误的。a)保护继承的时基类中的公共成员在派生类中不被公开b)公共继承时基类中的私有成员在派生类中仍然是私有的c)私有继承的时基类中的公共成员在派生类中是私有的d)保护继承的时基类中的公共成员在派生类中不受保护下面的陈述是错误的。a)派生类可以使用私有b)对基类成员的访问必须是不明确的c)基类成员的访问能力在派生类中保持不变d)分配兼容性规则也适用于多个继承组合派生类的构造函数的成员初始化列表不能包含(c)。a)基类的构造函数b)派生类中子对象的初始化c)基类中子对象的初始化d)派生类中通用数据成员的初始化12.虚拟基类的以下声明是正确的:(b)A)虚拟类B:公共A B)虚拟类B:公共Ac)B:类公共A虚拟D)虚拟b :类公共A(d)实现运行时多态性a)重载函数b)构造函数c)析构函数d)虚函数14.如果一个类包含纯虚函数,这个类就叫做(d)a)基类b)纯基类c)派生类d)抽象类15.假设A是一个抽象类,下面的语句(b)是正确的一种乐趣;乙)甲*丙;(三)国际融资(一);物体;16.当在派生类中重载虚拟函数时,需要函数名、参数数量、参数类型、参数顺序和函数(B)的返回值a)不同b)相同c)兼容d)部分相同17.在下面的函数原型声明中,(c)将fun声明为一个普通的虚拟函数a)void fun()=0;b)虚拟空趣()=0;c)虚拟虚空乐趣();d)虚拟虚空乐趣() ;18.在以下四个选项中,(a)用于声明虚拟函数。a)虚拟B)公共C)使用D)假19.要实现运行时多态性,请使用(d)。a)重载函数b)构造函数c)析构函数d)虚函数20.在虚函数的描述中,正确的是(d)。a)虚函数是静态成员函数b)虚函数是非成员函数c)可以在功能描述或功能实现中定义虚拟功能d)派生类的虚函数与基类中相应的虚函数具有相同数量和类型的参数第二,填空:1.派生类可以通过三种方式继承基类: _ public _ _、_ protected _ _、和_ private _ _。2.如果Alpha类继承了Beta类,则Alpha类称为_ _派生类,Beta类称为_ _基类。3.设置虚拟基类的目的是消除歧义。虚拟基类可以由_virtual标识。4.在类继承中,默认的继承方法是_ _ private _ _ _ _ _ _ _ _。5.当受保护的继承用于从基类派生类时,基类的公共成员成为派生类的受保护成员,受保护成员成为派生类的受保护成员。6.指向基类对象的指针变量也可以指向_ _公共派生类的对象。Iii .程序问题1.继承的工作方法,完成以下代码。要求:(1)在适当的位置采用公共继承,(2)在适当的位置填充基类的ai,(3)在适当的位置填充派生类的bi,以及(4)对象b的数据成员是什么?ai,bi#包括#包括甲级public:a() ai=1;protected:int ai;B:类_ Apublic:b() bi=2;无效显示()甲级public:a(int I) x=I;coutCA: 甲级public:a(int I) x=I;标准输出甲级public:a(int I) x=I;int x;b :公共A级public:b(int I): A(I 1) y=I;int y;空隙f1(A ra)coutx甲级public:void display()coutA 甲级public:虚拟空白显示()甲级public:虚拟空白显示()coutA 显示();回答:8.以下程序的屏幕输出为:为什么DA出现在以下程序的屏幕输出中?请解释一下。#包括甲级public:甲()国达;b :公共A级public: B() cout DB ;int main()B b答:在定义b类对象b时,首先调用基类a的构造函数,然后调用派生类b的构造函数。在析构时,情况正好相反。B类首先被析构,然后A类被析构。答:(1)公共(2)人工智能(3)bi (4)人工智能,bi2.答:答(90)3.答:A(90)、d(19)4回答:5.回答:6.回答:7.回答:8.答:在定义b类对象b时,首先调用基类a的构造函数,然后调用派生类b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论