欢迎来到天天文库
浏览记录
ID:59457773
大小:847.00 KB
页数:85页
时间:2020-09-15
《第5章-派生类与继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章派生类与继承内容提要:u派生类的概念u派生类的构造函数和析构函数u多重继承u虚函数与多态性u继承是面向对象程序设计的一个重要特性。u它允许在既有类的基础上创建新的类,新类可以从一个或多个既有类中继承函数和数据,而且可以重新定义或加进新的数据和函数,从而形成类的层次或等级。u既有类称为基类或父类,在它基础上建立的新类称为派生类或子类。C++程序设计§5.1派生类的概念5.1.1为什么要继承u现实世界中许多事物具有继承性,我们可以用层次分类的方法来描述它们之间的关系。例如:一个简单的汽车分类图汽车运输汽车专用汽车客车货车消防车洒水车u继承性也是程序设计中的一个非常有用
2、的、有力的特性,它可以让程序员在既有类的基础上,通过增加少量代码或修改少量代码的方法得到新的类,从而较好的解决代码重用的问题。C++程序设计派生类的概念classperson{classemployee{private:private:charname[10];charname[10];intage;intage;charsex;charsex;public:chardepartment[20];voidprint();floatsalary;};public:voidprint();};u从以上类的声明可以看出,这两个类中的数据成员和成员函数有很多相同的地方。只要在p
3、erson类的基础上再增加数据成员department和salary,再对print()成员函数稍加修改就可以定义出employee类。像这样定义两个类,代码重复太严重。为了提高代码的可重用性,就必须引入继承性,将employee类说明成person类的派生类,那些相同的成员在C++程序设计employee类中就不需要再定义了。派生类的概念5.1.2派生类的声明//定义一个基类classperson{1.声明一个派生类的一般格式private:charname[10];intage;class派生类名:派生方式基类名{charsex;public://派生类新增的数据成
4、员和成员函数//…};};//定义一个派生类说明:classemployee:publicperson{private:①派生类名就是要声明的新类chardepartment[20];名。floatsalary;②基类名是一个已经定义的类。public://…};C++程序设计派生类的概念③派生方式可以是关键字private或public。private指派生类从基类私有派生;public指派生类从基类公有派生。④派生方式可以缺省,这时派生方式默认为private。2.两种派生方式的特点①无论是哪种派生方式,基类中的私有成员既不允许外部函数访问,也不允许派生类中的成员函
5、数访问,但是可以通过基类提供的公有成员函数访问。②公有派生与私有派生的不同点在于基类中的公有成员在派生类中的访问属性。u公有派生时,基类中的所有公有成员在派生类中也都是公有的u私有派生时,基类中的所有公有成员在派生类中都是私有的C++程序设计#include派生类的概念classbase{intx;public:voidsetx(intn)3.私有派生{x=n;}(1)私有派生类对基类成员的voidshowx(){cout<6、有成员只能是私public:有继承,也就是说基类中的voidsetxy(intn,intm)公有成员都只能成为私有派{setx(n);y=m;生类的私有成员,这些私有}成员能够被派生类的成员函voidshowxy()数访问,但是基类私有成员{{schoouwt派生类的概念classbase{intx;p7、ublic:voidsetx(intn)(2)外部函数对私有派生类继{x=n;}承来的成员的访问voidshowx(){cout<
6、有成员只能是私public:有继承,也就是说基类中的voidsetxy(intn,intm)公有成员都只能成为私有派{setx(n);y=m;生类的私有成员,这些私有}成员能够被派生类的成员函voidshowxy()数访问,但是基类私有成员{{schoouwt派生类的概念classbase{intx;p
7、ublic:voidsetx(intn)(2)外部函数对私有派生类继{x=n;}承来的成员的访问voidshowx(){cout<
此文档下载收益归作者所有