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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第5章继承与派生.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第5章继承与派生.docx

1、第5章继承与派生第5章 继承与派生 5.1继承与派生的概念 图5.1 图5.2 图5.3 5.4 图 2 )(C+版数据结构 5.5 图 派生类的声明方式5.2 派生类的构成5.3 5.6 图 派生类成员的访问属性5.4 5.4.1公用继承 3 面向对象程序设计C+ 5.4.2 私有继承 图5.7 5.4.3 保护成员和保护继承 图5.8 4 )(C+数据结构版 5.4.4多级派生时的访问属性 5.9 图 派生类的构造函数和析构函数5.5 5.5.1简单的派生类的构造函数 5.10 图 5.11 图 5.5.2有子对象的派生类的构造函数 5 面向对象程序设计C+ 5.12 图5.5.3 多层派

2、生时的构造函数 图5.13 5.5.4 派生类构造函数的特殊形式5.5.5 派生类的析构函数5.6多重继承 5.6.1 声明多重继承的方法5.6.2 多重继承派生类的构造函数5.6.3 多重继承引起的二义性问题 6 )数据结构(C+版 5.14 图 5.15 图 5.16 图 5.17 图 5.18 图7 C+面向对象程序设计 图5.19 图5. 20 5.6.4虚基类 1. 虚基类的作用 5.21 图 8 )(C+版数据结构 5.22 图 5.23 图 5.24 图 2. 虚基类的初始化 9 面向对象程序设计C+ 5.25 图3. 虚基类的简单应用举例 5.7基类与派生类的转换 图5.26

3、5.27 图 10 )版数据结构(C+ 5.8继承与组合 5.9继承在软件开发中的重要意义 习题 1. 将例5.1的程序片段补充和改写成一个完整、正确的程序,用公用继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个数据的值。 2. 将例5.2的程序片段补充和改写成一个完整、正确的程序,用私有继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个数据的值。 3. 将例5.3的程序修改、补充,写成一个完整、正确的程序,用保护继承方式。在程序中应包括输入数据的函

4、数。 4. 修改例5.3的程序,改为用公用继承方式。上机调试程序,使之能正确运行并得到正确的结果。对这两种继承方式作比较分析,考虑在什么情况下二者不能互相代替。 5. 有以下程序结构,请分析访问属性。class A/A为基类 public: void f1( ); int i; protected: void f2( ); int j; private: int k; ; 的公用派生类A为/B class B: public A 11 C+面向对象程序设计 public: void f3( ); protected: int m; private: int n; ; class C: publ

5、ic B /C为B的公用派生类 public: void f4( ); private: int p; ; int main( ) A a1; /a1是基类A的对象 B b1; /b1是派生类B的对象 C c1; /c1是派生类C的对象 return 0; 问: (1) 在main函数中能否用b1.i,b1.j和b1.k引用派生类B对象b1中基类A的成员? (2) 派生类B中的成员函数能否调用基类A中的成员函数f1和f2? (3) 派生类B中的成员函数能否引用基类A中的数据成员i,j,k? (4) 能否在main函数中用c1.i,c1.j,c1.k,c1.m,c1.n,c1.p引用基类A的成员

6、i,j,k,派生 ?p的成员C,以及派生类m,n的成员B类 12 )(C+版数据结构 (5) 能否在main函数中用c1.f1(),c1.f2(),c1.f3()和c1.f4()调用f1,f2,f3,f4成员函数? (6) 派生类C的成员函数f4能否调用基类A中的成员函数f1,f2和派生类中的成员函数f3? 6. 有以下程序结构,请分析所有成员在各类的范围内的访问权限。class A public: void f1( ); protected: void f2( ); private: int i; ; class B: public A public: void f3( ); int k;

7、private: int m; ; class C: protected B public: void f4( ); protected: int m; private: 13 C+面向对象程序设计 int n; ; class D: private C public: void f5( ); protected: int p; private: int q; ; int main() A a1; B b1; C c1; D d1; 7. 有以下程序,请完成下面工作: 阅读程序,写出运行时输出的结果。 然后上机运行,验证结果是否正确。 分析程序执行过程,尤其是调用构造函数的过程。#includ

8、e using namespace std; class A public: A( )a=0;b=0; 14 )版数据结构(C+ A(int i)a=i;b=0; A(int i,int j)a=i;b=j; void display( )couta=a b=b; private: int a; int b; ; class B : public A public: B( )c=0; B(int i):A(i)c=0; B(int i,int j):A(i,j)c=0; B(int i,int j,int k):A(i,j)c=k; void display1( ) display(); co

9、ut c=cendl; private: int c; ; int main( ) B b1; B b2(1); B b3(1,3); 15 C+面向对象程序设计 B b4(1,3,5); b1.display1( ); b2.display1( ); b3.display1( ); b4.display1( ); return 0; 8. 有以下程序,请完成下面工作: 阅读程序,写出运行时输出的结果。 然后上机运行,验证结果是否正确。 分析程序执行过程,尤其是调用构造函数和析构函数的过程。#include using namespace std; class A public: A( )co

10、utconstructing A endl; A( )coutdestructing A endl; ; class B : public A public: B( )coutconstructing B endl; B( )coutdestructing B endl; ; class C : public B public: endl; constructing C C( )cout 16 )(C+版数据结构 C( )coutdestructing C endl; ; int main( ) C c1; return 0; 9. 分别定义Teacher(教师)类和Cadre(干部)类,采用

11、多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: 在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务), 在Teacher_Cadre类中还包含数据成员wages(工资)。 对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。 在类体中声明成员函数,在类外定义成员函数。 在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。 10. 将本章5.8节中的程序片段加以补充完善,成为一个完整的程序。在程序中使用继承和组合。在定义Professor类对象prof1时给出所有数据的初值,然后修改prof1的生日 的全部最新数据。prof1数据,最后输出

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1