ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:84.50KB ,
资源ID:6061368      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6061368.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C++网络作业5答案.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C++网络作业5答案.doc

1、一、 选择题 1. C++语言建立类族是通过_________实现的。C A)类的嵌套 B)虚函数 C)类的继承 D)抽象类 2. C++中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过________派生出新的类。B A)复用 B)继承 C)封装 D)引用 3. 继承具有_____,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。B A)规律性 B)传递性 C) 重复性 D)多样性 在一个类的派生类中,其成员有两部分构成:一部分是从基类继承得到的,另一

2、部分是自己定义的新成员。当基类本身也是一个派生类时,它必然包含了它的直接基类的成员,这些成员相应地也存在于该基类的派生类中。因此,继承是具有传递性的。 4. __①A__提供了类对外部的接口, __②B ___是类的内部实现,而__③D ___不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。 A)公有成员 B)私有成员 C)私有成员函数 D)保护成员 5. 下列对基类和派生类关系的描述中,错误的是___________。B A)派生类是基类的具体化 B)派生类是基类的子集 C)派生类是基类定义的

3、延续 D)派生类是基类的组合 派生类包含基类中的成员,它是对基类定义的扩充和延续,是对基类定义的进一步具体化,而不是基类的子集。 6. 下列对派生类的描述中,错误的是__________。D A)一个派生类可以作为另一个派生类的基类 B)派生类至少有一个基类 C)派生类的缺省继承方式是private D)派生类只继承了基类的公有成员和保护成员 //继承了基类的所有成员 7. 下列关于继承的描述中,错误的是_________。D A)析构函数不能被继承 B)派生类是基类的组合 C)派生类的成员除了它自己的成员外,

4、还包含了它的基类的成员 D)派生类中继承的基类成员的访问权限到派生类保持不变 派生类不能继承基类的构造函数和析构函数,也不能访问基类的私有成员,而对基类的公有成员和保护成员的访问权限随着派生类对基类的继承方式而改变。 8. 派生可以分为___①A _和_②C _。由___②_得到的派生类,其基类的所有公有成员都只能成为它的私有成员,这些私有成员只能被派生类的成员函数访问,而___③B _无权访问;由___①___得到的派生类,其基类中所有公有成员在派生类中也都是公有的。 A)公有派生 B)派生类的实例 C)私有派生 D)派生类的构造函数 对于公有继承方式:

5、 ·基类成员对其对象的可见性 与一般类及其对象的可见性相同,公有成员可见,其他成员不可见。这里保护成员与私 有成员相同。 ·基类成员对派生类的可见性 对派生类来说,基类的公有成员和保护成员可见:基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见:基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员。 ·基类成员对派生类对象的可见性 对派生类对象来说,基类的公有成员是可见的, 其他成员是不可见。 所以,在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成

6、员。 对于私有继承方式: ·基类成员对其对象的可见性 与一般类及其对象的可见性相同,公有成员可见,其 他成员不可见。 ·基类成员对派生类的可见性 对派生类来说,基类的公有成员和保护成员是可见的:基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问;基类的私有成员是不可见的:派生类不可访问基类中的私有成员。 ·基类成员对派生类对象的可见性 对派生类对象来说,基类的所有成员都是不可见的。 所以,在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。 对于保护继承方式: 这种继承方式与私有继承方

7、式的情况相同。两者的区别仅在于对派生类的成员而言, ·基类成员对其对象的可见性 与一般类及其对象的可见性相同,公有成员可见,其 他成员不可见。 ·基类成员对派生类的可见性 对派生类来说,基类的公有成员和保护成员是可见的:基类的公有成员和保护成员 都作为派生类的保护成员,并且不能被这个派生类的子类所访问;基类的私有成员是不可见的:派生类不可访问基类中的私有成员。 ·基类成员对派生类对象的可见性 对派生类对象来说,基类的所有成员都是不可见的。 所以,在保护继承时,基类的成员也只能由直接派生类访问,而无法再往下继承。

8、 9. 基类的__①B ___不能为派生类的成员访问,基类的___②A ___在派生类中的性 质和继承的性质一样,基类的___③D___在私有继承时在派生类中成为私有成 员函数,在公有和保护继承时在派生类中仍为保护成员函数。 A)公有成员 B)私有成员 C)私有成员函数 D)保护成员函数 10. 派生类的对象对它的基类成员中__A____是可以访问的。 A)公有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)私有继承的公有成员 11. 下列说法中错误的是_________。B A)公有

9、继承时基类中的public成员在派生类中仍是public的 B)公有继承时基类中的private成员在派生类中仍是private可见的 C)私有继承时基类中的public成员在派生类中是private的 D)保护继承时基类中的public成员在派生类中是protected的 基类的私有成员在在派生类中是隐藏的,是不可见的,派生类不可访问基类中的私有成员。 12. 下面叙述错误的是_________:A A)基类的protected成员在派生类中仍然是protected的 B)基类的protected成员在public派生类中仍然是prote

10、cted的 C)基类的protected成员在private派生类中是private的 D)基类的protected成员不能被派生类的对象访问 参考第八题说明 14. C++类体系中,不能被派生类继承的有________。A A)构造函数 B)虚函数 C)静态成员函数 D)赋值操作函数 派生类不能继承基类的构造函数和析构函数 15. 派生类的构造函数的成员初始化列表中,不能包含________。C A)基类的构造函数 B)派生类中子对象的初始化 C)基类中子对象的初始化 D)派生类中一般数据成员的初始化 派生类的构造函数只负责

11、对基类成员(调用基类的构造函数)、新定义的子对象成员和一般数据成员进行初始化 16 多继承的构造顺序可分为如下4步:C ①所有非虚基类的构造函数按照它们被继承的顺序构造; ②所有虚基类的构造函数按照它们被继承的顺序构造; ③所有子对象的构造函数按照它们声明的顺序构造: ④派生类自己的构造函数体: 这4个步骤的正确顺序是_______。 A)④③①② B)②④③① c)②①③④ D)③④①② 参考课本P387及例题 17 关于多继承二义性的描述中,错误的是___________。C A) 一个派生类的两个基类中都

12、有某个同名成员,在派生类中对这个成员的访可能出现二义性 B)解决二义性的最常用的方法是对成员名的限定法 C)基类和派生类中同时出现的同名函数,也存在二义性问题 D)一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类.对该基类成员进行访问时,可能出现二义性 基类和派生类中同时出现的同名函数,若其形参个数、类型都一致则基类的被派生类的覆盖,否则可看作函数重载。 18. 设置虚基类的目的是_______。B A)简化程序 B)消除二义性 C)提高运行效率 D)减少目标代码 19. 下列虚基类

13、的声明中,正确的是________。D A) class virtua1 B:public A B) virtual class B:public A C) class B:public A virtual D) c1ass B:virtual public A 20. 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数, 这样将对虚基类的子对象初始化________。D A)与虚基类下面的派生类个数有关 B)多次 C)两次 D)一次 24. 下面_______的叙述不符合赋值兼容

14、规则。B A)派生类的对象可以赋值给基类的对象 B)基类的对象可以赋值给派生类的对象 C)派生类的对象可以初始化基类的引用 D)派生类的对象的地址可以赋值给指向基类的指针 赋值兼容规则是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员,而且所有成员的访问控制属性也和基类完全相同。这样,公有派生类实际就具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解决。赋值兼容规则中所指的替代包括以下的情况: ·派生类的对象可以赋值给基类对象。 ·派生类的对

15、象可以初始化基类的引用。 ·派生类对象的地址可以赋给指向基类的指针。 在替代之后,派生类对象就可以作为基类的对象使用,但只能使用从基类继承的成员。 参考光盘讲义第13章第10节 26. 下列程序巾,划线处正确的语句是_______:C #include class Base { public: void fun(){ cout<<"Base::fun"<

16、 //显式调用基类的函数fun() cout<<"Derived::fun"<fun(); 程序中要求显式调用某个类的成员时,必须使用成员名限定符(域区分符)。其一般格式为 〈类名>.<成员名> 或 〈类名>.<成员名>(<参数表>) 27. 下列程序中,编译时不会出错的语句是_________________A #include

17、am.h> class Base { public: Base() { } Base(int i) { data=i; } private: int data; }; class Derived: public Base { public: Derived() :Base(0) {} Derived(int x): Base(x) { } }; void main() { Derived d1(1); Base *pb,b1; pb=&d1;

18、 //A d1=b1; //B Base &refB=d1; Derived d2=*pb; //C Derived &refD=refB; //D } 公有继承时: 派生类的对象可以赋值给基类的对象,即用派生类从基类继承来的成员,逐个赋值给基类对象的成员。反之则出错。 派生类的对象可以初始化基类的引用。反之则出错。 派生类的对象地址可以赋值给指向基类的指针。反之则出错。 不用虚函数时,后两种情况的基类的指针和引用只能访问派生类中从基类继承来的成员 二、填空题

19、 28 派生类对基类的继承有三种方式:_①公有继承public ___、__②私有继承private ____和__③_保护继承protected _____。 29 类继承中,缺省的继承方式是private______。 30 如果类Alpha继承了类Beta,则类Alpha称为①派生类类,类Beta称为_②基类_类。 31 C++提供的_多继承_机制允许一个派生类继承多个基类,即使这些基类是相互无关的。 32 利用继承能够实现__软件复用。这种实现缩短了程序的开发时间,促使开发人员复用 已经测试和调试好的高质量软件。 33 若类Y是类X的私有派生类,类Z是类

20、Y的派生类,则类Z_不能_访问类X的保护成员 与公有成员。 34 当用protected继承从基类派生一个类时,基类的public成员成为派生类的protected 成员,protected成员成为派生类的_protected_成员。 35 多继承情况下,派生类的构造函数的执行顺序取决于_______定义_派生类时所指定的各 基类的顺序。 36 构造函数___①不能_____被继承,析构函数____②不能_____被继承。 37 对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行__①基类的构造函数__,再执行_②子对象的构造函数___,最后执

21、行___③派生类本身的构造函数体__。 38 对基类数据成员的初始化必须在派生类构造函数中的_成员初始化列表__处执行。 在派生类构造函数中,对基类数据成员的初始化必须在成员初始化列表中进行,新增成员的初始化既可以在成员初始化列表中进行,也可以构造函数体中进行。 39 当撤消一个含有基类和子对象成员的派生类对象时,将首先完成_①_派生类__的析 构函数定义体的执行,接着完成 _②子对象的__的析构函数定义体的执行,最后完成 _③基类__的析构函数定义体的执行。 派生类的析构函数的执行过程与派生类的构造函数的执行过程严格相反。 40 ___①_多___继承情况下,派生类

22、中对基类成员的访问会出现二义性。解决二义性的 方法是__②成员名限定法_____和___③虚基类_____。 41 在派生类中使用基类的成员,可以显式地使用_成员名限定符_来使用基类成员。 43 设置虚基类的目的是_①解决二义性问题_,可通过②关键字virtual _标识虚基类。 44 指向基类的对象的指针变量也可以指向__________的对象。派生类 46 ___①派生类_____类的对象可作为___②基类____类的对象处理。 47 在划线处填上适当的语句,完成下列程序。 #include #include

23、class Point { public: Point(double a, double b, double c) {__①X=a;Y=b;Z=c; } double Getx( ) {return X; } double Gety( ) { return Y; } double Getz() { return Z; } private: ____②double X _______ protected: ____③double Y, Z;_______ }; class Line:__

24、④public _ Point { public: Line(double a,double b,double c,double d)⑤:point(a,b,c){_⑥K=d;} void show() { cout<

25、K; }; void main() { Line obj(1.2,3.4,5.6,7.8); obj.show( ); } 注意:protected成员与private成员的区别, 对派生类Line来说,基类Point的保护成员Y和Z是可见的:基类Point的私有成员X是不可见的:派生类不可访问基类中的私有成员X。 48 判断f,Y::f,Z2::f 中的各条语句是否正确。 class X { public: int a; }; class Y1: public X { }; class Y2: protected X

26、 { }; class Y3: private X { private: void f(Yl* pyl,Y2* py2,Y3* py3); }; class Z2: public Y2 { private: void f(Y1* pyl,Y2* py2,Y3* py3); } void f(Yl* pyl,Y2* py2,Y3* py3) { pyl->a=7; //__①正确__ py2->a=7; //___②错误__ py3->a=7; //__③错误____ } void

27、Y3::f(YI* pyl,Y2* py2,Y3* py3) { pyl->a=7; //__④正确____ py2->a=7; //__⑤错误____ py3->a=7; //__⑥正确_____ } void Z2::f(YI* pyl,Y2* py2,Y3* py3) { pyl->a=7; //__⑦正确_____ py2->a=7; //___⑧错误____ py3->a=7; //__⑨错误_____ } 派生类Y1从基类X公有继承,基类X成员a在Y1中仍

28、然是public,所以Y1类型的指针py1可以访问a成员。因此①、④、⑦正确。 派生类Y2从基类X保护继承.,X成员a在Y2中变为protected,保护成员不能在类体外被访问,因此在普通函数f及Y3的成员f函数的函数体内,不能通过Y2类型的指针py2访问a成员,②和⑤错误。 派生类Z2从派生类Y2公有继承,基类成员a在Z2中变为保护成员,因此a 成员可以在Z2的类体内被直接访问,或通过Z2类体内的Z2类对象被访问,而不能通过类Z2的基类Y2的对象进行访问,因此⑧错误。 派生类Y3从基类X私有继承,基类成员a在Y3中变为私有成员,只能在Y3的类体内进行访问,在Y3的成员函数f中,Y3类型

29、的指针py3可以访问a成员,此时仍然是在类Y3的类体内,因此⑥正确。但在普通函数f及Z2的成员f函数的函数体内,不能通过py3访问a成员,因此③和⑨错误。 49 根据基类的定义和测试程序,完成下面派生类的定义。 class Point { public: Point(int i=0,int j=0) {X=i, Y=j; } void Move(int xOff, int yOff) {X+=xOff; Y+=yOff; } int GetX() {return X; } int GetY() {return Y;} pr

30、ivate: int X,Y; }; class Rectangle: private Point { public: Rectangle(int x,int y,int w,int h)_①:Point(x,y)_{_②W=w; H=h;} void Move(int xOff, int yOff) {___③Point::Move(xOff,yOff);_____} int GetX(){____④return Point::GetX( );__} int GetY(){_____⑤return Point::G

31、etY( ); __} int GetW(){_____⑥return W;___} int GetH(){_____⑦return H;__} private: int W,H; }; #include #include void main() { Rectangle rect(1,2,3,4); rect.Move(5,6); cout<<"The data of rect(X,Y,W,H):(” <

32、rect.GetY()<<"," < class A { public: void f( int i) { cout<

33、t<<"g"<

34、10 A 11 B 12 A 14 A 15 C 16 C 17 C 18 B 19 B 20 D 24 B 26 C 27 A 二,填空题: 28 ① 公有继承public ② 私有继承private ③ 保护继承protected 29 private 30 ① 派生类 ② 基类 31 多继承 32 软件复用 33 不能 34 protected protected 35 定义 36 ① 不能 ② 不能 37 ① 基类的构造函数 ② 子对象的构造函数 ③ 派生类本身的构造函数体 38 成员初

35、始化列表 39 ① 派生类 ② 子对象的 ③ 基类 40 ① 多 ②成员名限定法 ③ 虚基类 41 成员名限定符 43 ① 解决二义性问题 ②关键字virtual 44 派生类 46 ①派生类 ②基类 47 ①X=a;Y=b;Z=c; ②double X ③double Y, Z; ④public ⑤:point(a,b,c) ⑥K=d; 48 ①正确 ②错误 ③错误 ④正确 ⑤错误 ⑥正确 ⑦正确 ⑧错误 ⑨错误 49 ①:Point(x,y) ②W=w; H=h; ③Point::Move(xOff,yOff); ④return Point::GetX( ); ⑤return Point::GetY( ); ⑥return W; ⑦return H; 50 ①A::f ②d1

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服