派生类的概念.pptx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、本文档付费后,不意味着付费购买了版权,只能用于单位或个人使用,不得用于商业用途(如:【转卖】进行直接盈利和【编辑后售卖】进行间接盈利)。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:18428362892(电话支持时间:9:00-19:00)。
C++面向对象程序设计派生类的概念 派生类的概念保持已有类的特性而构造新类的过程称为继承(inheritance)。(OOP术语)在已有类的基础上新增自己的特性而产生新类的过程称为派生(derive)。(C++术语)被继承的已有类称为基类(或父类)。派生出的新类称为派生类(或子类)。类继承的一个经典例子class shape{public: float area( ){ return -1;}};class circle:public shape{ float radius;public: circle(float r){ radius = r; } float area( ){ return 3.14158*radius*radius; }};shapecircle类继承的一个经典例子(续)shapeclass rectangle:public shape{ float length,width;public: rectangle (float l, float w) {length=l, width=w; } float area( ) { return length *width; }};rectangle从同一个基类可以派生出多个新类shaperectanglecircle类的继承层次与分类结构继承与派生的目的继承的目的:实现代码重用。派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行扩充和改造。C++中类的继承层次自然地表达了人们分析问题时所用的分类结构。大大改善了软件系统的可理解性和可维护性。 派生类声明的一般形式class 派生类名:访问控制符 基类名1, ….{ 成员定义;};多继承:一个派生类有多个基类;单继承:一个派生类只有一个基类。基类的访问控制基类的访问说明符必须下列是三者之一: public(公有), private(私有), protected(保护)。基类的访问控制符决定了派生类成员以及对象对继承来的基类成员的访问权限。不同的访问控制影响主要体现在:1、派生类成员函数对基类成员的访问。2、其他函数对基类成员的访问。公有继承 (inherit as public)公有派生 (derived as public)当被继承的基类的访问说明符是public的时候,所有基类的公共成员都成为派生类的公共成员。其他函数只能访问基类的public成员。派生类中的成员函数可以直接访问基类中的public,但不能访问基类的private成员。一个有争议的问题无论基类被怎样继承,基类中的私有成员都不能被其派生类成员直接访问。只能通过基类的公共接口访问。继承来的特性不能直接使用似乎于理不通,但是派生类不加限制的访问基类的私有成员,将破坏基类的封装性,这是面向对象方法中有争议的问题之一。(两难问题)protected 关键字除了基类的被保护成员对于基类的任何派生类成员都是可访问的以外,protected 访问说明符与private说明符是完全等效的。派生类的成员函数不能直接访问基类的私有(private)成员。但派生类的成员函数能访问基类的被保护(protected)成员。保护继承(inherit as protected)基类的public和protected成员都以protected身份出现在派生类中,但基类的private成员不可访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。派生类的对象不能访问基类中的任何成员。私有继承(inherit as private ) 私有派生(derived as private)基类的所有public和protected成员都成为派生类的私有成员。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。其他函数不能通过派生类的对象访问基类中的任何成员。C++面向对象程序设计谢谢观看!C++中类的继承层次自然地表达了人们分析问题时所用的分类结构,大大改善了软件系统的可理解性和可维护性,从而使得软件易于重用。结构化程序设计中的软件代码重用(例如:库函数);不便扩充。 面向对象的程序设计中通过继承实现重用——便于重用,扩充。可以在原有的基础上扩充,不修改原有代码。 当一个类继承另一个类时,基类的成员也将成为派生类的成员。在派生类中对基类成员的访问是由派生类从基类继承时所用的访问说明符决定的。访问说明符 access specifierpublic方式:特点:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可访问。具体含义:1、其他函数只能访问基类的public成员,不能访问基

您可能关注的文档

文档评论(0)

151****7975

相关文档

相关课程推荐