第5章 继承与派生.docx
- 文档编号:5120448
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:12
- 大小:262.98KB
第5章 继承与派生.docx
《第5章 继承与派生.docx》由会员分享,可在线阅读,更多相关《第5章 继承与派生.docx(12页珍藏版)》请在冰豆网上搜索。
第5章继承与派生
第5章继承与派生
5.1继承与派生的概念
图5.1
图5.2
图5.3
图5.4
图5.5
5.2派生类的声明方式
5.3派生类的构成
图5.6
5.4派生类成员的访问属性
5.4.1公用继承
5.4.2私有继承
图5.7
5.4.3保护成员和保护继承
图5.8
5.4.4多级派生时的访问属性
图5.9
5.5派生类的构造函数和析构函数
5.5.1简单的派生类的构造函数
图5.10
图5.11
5.5.2有子对象的派生类的构造函数
图5.12
5.5.3多层派生时的构造函数
图5.13
5.5.4派生类构造函数的特殊形式
5.5.5派生类的析构函数
5.6多重继承
5.6.1声明多重继承的方法
5.6.2多重继承派生类的构造函数
5.6.3多重继承引起的二义性问题
图5.14
图5.15
图5.16
图5.17
图5.18
图5.19
图5.20
5.6.4虚基类
1.虚基类的作用
图5.21
图5.22
图5.23
图5.24
2.虚基类的初始化
图5.25
3.虚基类的简单应用举例
5.7基类与派生类的转换
图5.26
图5.27
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.修改例5.3的程序,改为用公用继承方式。
上机调试程序,使之能正确运行并得到正确的结果。
对这两种继承方式作比较分析,考虑在什么情况下二者不能互相代替。
5.有以下程序结构,请分析访问属性。
classA//A为基类
{public:
voidf1();
inti;
protected:
voidf2();
intj;
private:
intk;
};
classB:
publicA//B为A的公用派生类
{public:
voidf3();
protected:
intm;
private:
intn;
};
classC:
publicB//C为B的公用派生类
{public:
voidf4();
private:
intp;
};
intmain()
{Aa1;//a1是基类A的对象
Bb1;//b1是派生类B的对象
Cc1;//c1是派生类C的对象
return0;
}问:
(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的成员i,j,k,派生类B的成员m,n,以及派生类C的成员p?
(5)能否在main函数中用c1.f1(),c1.f2(),c1.f3()和c1.f4()调用f1,f2,f3,f4成员函数?
(6)派生类C的成员函数f4能否调用基类A中的成员函数f1,f2和派生类中的成员函数f3?
6.有以下程序结构,请分析所有成员在各类的范围内的访问权限。
classA
{public:
voidf1();
protected:
voidf2();
private:
inti;
};
classB:
publicA
{public:
voidf3();
intk;
private:
intm;
};
classC:
protectedB
{public:
voidf4();
protected:
intm;
private:
intn;
};
classD:
privateC
{public:
voidf5();
protected:
intp;
private:
intq;
};
intmain()
{Aa1;
Bb1;
Cc1;
Dd1;
7.有以下程序,请完成下面工作:
①阅读程序,写出运行时输出的结果。
②然后上机运行,验证结果是否正确。
③分析程序执行过程,尤其是调用构造函数的过程。
#include
usingnamespacestd;
classA
{public:
A(){a=0;b=0;}
A(inti){a=i;b=0;}
A(inti,intj){a=i;b=j;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 继承与派生 继承 派生