第4章 继承及组合.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 继承性 授课内容 4.1 继承性概述 4.2 C++定义派生类的语法 4.3 派生类对象的初始化 4.4 派生类中的变化 4.5 静态成员 4.6 基类与派生类之间的转换 4.1 继承性概述 继承性概述 两个类之间的一种关系,当一个类拥有另一个类的所有属性和行为时,就称这两个类之间具有继承关系。 被继承的类称为父类或基类,继承了父类属性和行为的类称为子类或派生类。 继承是一个具体化、特殊化的过程。 继承性概述 继承体现了大自然中一般与特殊的关系,实现了代码的重用,进而提高了代码的易维护性。 继承性概述 继承性概述 继承性概述 派生类继承了基类除构造函数与析构函数之外的全部成员。 派生类可以改造基类的成员 继承性概述 根据基类的个数,继承分为: 单继承:子类只有一个直接基类。 继承性概述 根据基类的个数,继承分为: 多继承:子类有多个直接基类。 设计程序时尽量少使用多继承。 4.2 C++定义派生类的语法 派生类的定义 class P //人 { protected: char name[10]; int sex; public: void ShowP () { cout name sex; } }; 派生类的定义 class Plane { char chPropeller; public: void Flight(); }; class Boat { char chHelm; public: void Float(); }; 派生类的定义 单继承时派生类定义格式如下: class 派生类名 : 继承方式 基类名 { 派生类类体 }; 多继承时派生类定义格式如下: class 派生类名 : 继承方式1 基类名1, 继承方式2 基类名2,… { 派生类类体 }; 派生类的继承方式(访问权修饰符) class 派生类名 : 继承方式 基类名 {派生类类体}; class 派生类名 : 继承方式 基类名1, 继承方式2 基类名2,… {派生类类体}; 继承方式为public: 公有继承 继承方式为protected: 保护继承 继承方式为private: 私有继承 通过继承方式,可以调整从基类中继承下来的成员的访问控制权限。 派生类的继承方式 class Test { int a1; void f1(){ cout a1; } proteced: int a2; void f2(){ cout a2; } public: int a3 void f3(){ cout a3; } void show{ f1(); f2(); f3() } }; 公有继承 公有继承方式: 基类中的公有成员被继承到派生类中后,仍然保持为公有成员。 基类中的保护成员被继承到派生类中后,仍然保持为保护成员。 基类中的私有成员被继承到派生类中后,在派生中无法直接访问。 公有继承 class A { int m_Private; protected: int m_Protected; public: int m_Pulbic; }; 私有继承 私有继承方式: 基类中的公有成员被继承到派生类中后,变为私有成员。 基类中的保护成员被继承到派生类中后,变为私有成员。 基类中的私有成员被继承到派生类中后,在派生中无法直接访问。 私有继承 class A { int m_Private; protected: int m_Protected; public: int m_Pulbic; }; 保护继承 保护继承方式: 基类中的公有成员被继承到派生类中后,变为保护成员。 基类中的保护成员被继承到派生类中后,仍然保持为保护成员。 基类中的私有成员被继承到派生类中后,在派生中无法直接访问。 保护继承 class A { int m_Private; protected: int m_Protected; public: int m_Pulbic; }; class B1: protected A { public: void SetNum1() { m_Protected=1; m_Pulbic=1; m_Private = 1; } }; 派生类的继承方式 class x { private: int a; protected: int b; public: int c; }; 派生类的继承方式 class A { public: void f1(); protected: int j1; private: int i1; }; c

文档评论(0)

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

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

1亿VIP精品文档

相关文档