C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt

C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt

ID:50297356

大小:413.50 KB

页数:76页

时间:2020-03-07

C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt_第1页
C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt_第2页
C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt_第3页
C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt_第4页
C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt_第5页
资源描述:

《C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第6章 继承性 派生类.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《C++面向对象程序设计》教学内容第1章C++概述第2章类和对象第3章面向对象程序设计概述第4章进一步学习类和对象第5章堆与复制构造函数第6章继承性:派生类第7章运算符重载第8章虚函数和多态性第9章模板第10章类库和C++的标准模板库STL第11章输入输出流第12章异常处理第6章继承性:派生类6.1派生类的概念6.2单继承6.3派生类的构造函数和析构函数6.4多重继承6.5赋值兼容规则6.6应用举例一个现有的类ClassStudent{intnumber;char*name;floatscore;public:Student(intnumber1,char*name1,f

2、loatscore1);voidmodify(floatscore1);voidprint();};在现有类的基础上创建新类:派生classUstudent:publicStudent{charmajor;//专业public:Ustudent(intnumber1,char*name1,char*major,floatscore1);voidprint();};//Ustudent为大学生类派生类基类6.1派生类的概念保持已有类的特性而构造新类的过程称为继承(inheritance)。(OOP术语)在已有类的基础上新增自己的特性而产生新类的过程称为派生(derive)。

3、(C++术语)被继承的已有类称为基类(或父类)。派生出的新类称为派生类(或子类)。类继承的一个经典例子classshape{public:floatarea(){return-1;}};classcircle:publicshape{floatradius;public:circle(floatr){radius=r;}floatarea(){return3.14158*radius*radius;}};shapecircle类继承的一个经典例子(续)classrectangle:publicshape{floatlength,width;public:rectangle

4、(floatl,floatw){length=l,width=w;}floatarea(){returnlength*width;}};shaperectangle从同一个基类可以派生出多个新类shapecirclerectangle类的继承层次与分类结构继承与派生的目的继承的目的:实现代码重用。派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行扩充和改造。C++中类的继承层次自然地表达了人们分析问题时所用的分类结构。大大改善了软件系统的可理解性和可维护性。派生类声明的一般形式class派生类名:访问控制符基类名1,….{成员定义;};多

5、继承:一个派生类有多个基类;单继承:一个派生类只有一个基类。基类的访问控制基类的访问说明符必须下列是三者之一:public(公有),private(私有),protected(保护)。基类的访问控制符决定了派生类成员以及对象对继承来的基类成员的访问权限。不同的访问控制影响主要体现在:1、派生类成员函数对基类成员的访问。2、其他函数对基类成员的访问。公有继承(inheritaspublic)公有派生(derivedaspublic)当被继承的基类的访问说明符是public的时候,所有基类的公共成员都成为派生类的公共成员。其他函数只能访问基类的public成员。派生类中的成员

6、函数可以直接访问基类中的public,但不能访问基类的private成员。一个有争议的问题无论基类被怎样继承,基类中的私有成员都不能被其派生类成员直接访问。只能通过基类的公共接口访问。继承来的特性不能直接使用似乎于理不通,但是派生类不加限制的访问基类的私有成员,将破坏基类的封装性,这是面向对象方法中有争议的问题之一。(两难问题)protected关键字除了基类的被保护成员对于基类的任何派生类成员都是可访问的以外,protected访问说明符与private说明符是完全等效的。派生类的成员函数不能直接访问基类的私有(private)成员。但派生类的成员函数能访问基类的被保护

7、(protected)成员。保护继承(inheritasprotected)基类的public和protected成员都以protected身份出现在派生类中,但基类的private成员不可访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。派生类的对象不能访问基类中的任何成员。私有继承(inheritasprivate)私有派生(derivedasprivate)基类的所有public和protected成员都成为派生类的私有成员。派生类中的成员函数可以直接访

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。