网站大量收购闲置独家精品文档,联系QQ:2885784924

第6章 继承性 派生类.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 继承性 派生类

《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 应用举例 一个现有的类 Class Student{ int number; char *name; float score; public: Student(int number1, char* name1, float score1); void modify(float score1); void print( ); }; 在现有类的基础上创建新类:派生 class Ustudent : public Student { char major; //专业 public: Ustudent(int number1, char *name1, char *major, float score1); void print( ); }; // Ustudent 为大学生类 6.1 派生类的概念 保持已有类的特性而构造新类的过程称为继承(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; } }; 类继承的一个经典例子(续) class rectangle:public shape{ float length,width; public: rectangle (float l, float w) {length=l, width=w; } float area( ) { return length *width; } }; 从同一个基类可以派生出多个新类 类的继承层次与分类结构 继承与派生的目的 继承的目的:实现代码重用。 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行扩充和改造。 C++中类的继承层次自然地表达了人们分析问题时所用的分类结构。大大改善了软件系统的可理解性和可维护性。 派生类声明的一般形式 class 派生类名:访问控制符 基类名1, …. { 成员定义; }; 多继承:一个派生类有多个基类; 单继承:一个派生类只有一个基类。 基类的访问控制 基类的访问说明符必须下列是三者之一: public(公有), private(私有), protected(保护)。 基类的访问控制符决定了派生类成员以及对象对继承来的基类成员的访问权限。 不同的访问控制影响主要体现在: 1、派生类成员函数对基类成员的访问。 2、其他函数对基类成员的访问。 公有继承 (inherit as public) 公有派生 (derived as public) 当被继承的基类的访问说明符是public的时候,所有基类的公共成员都成为派生类的公共成员。 其他函数只能访问基类的public成员。 派生类中的成员函数可以直接访问基类中的public,但不能访问基类的private成员。 一个有争议的问题 无论基类被怎样继承,基类中的私有成员都不能被其派生类成员直接访问。只能通过基类的公共接口访问。 继承来的特性不能直接使用似乎于理不通,但是派生类不加限制的访问基类的私有成员,将破坏基类的封装性,这是面向对象方法中有争议的问题之一。(两难问题) protected 关键字 除了基类的被保护成员对于基类的任何派生类成员都是可访问的以外,protected 访问说明符与private说明符是完全等效的。 派生类的成员函数不能直接访问基类的私有(private)成员。但派生类的成员函数能访问基类的被保护(p

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档