派生和继承.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
派生和继承

第11章 派生和继承 引例: Person类的定义如下: class Person { private: char Name[9]; int Age; char Sex; public: Person ( char*, int, char); void GetName(char*); int GetAge(); char GetSex(); } ; … … … … 观察现实中对事物的描述 鸟类: 高等脊椎动物; 身体流线型的外廓; 头骨很轻; 体外被覆羽毛; 没有牙齿; 恒定的体温; 善于飞翔; 11.1 继承与派生 在C++中,由一个类继承另一个类的过程称为派生。被继承的类称为基类(父类);派生出的类叫做派生类(子类)。 在C++中,如果一个派生类仅有一个基类,即从一个类继承得到,我们称为单一继承;如果一个派生类有多于一个基类,即用于多个基类,我们称为多重继承。 单一继承 单一继承的格式: class 派生类名 : 派生方式 基类名 { private: 新增私有成员; public: 新增公有成员; protected: 新增保护成员 }; class A { private: 私有成员; public: 公有成员; }; 公有派生方式:public方式 当类B是从类A公有派生而来时,对类B的外部来说,即应用程序中类B的对象来说,类A中所有成员的访问权限在类 B中保持不变。 -类A中的私有成员在类B中仍为私有的 -类A中公有成员在类B中仍为公有的。 公有派生方式:public方式 当类B是从类A公有派生而来时,对类B的内部来说,即类B的成员来说,由于类A处于类B的外部,所以类B的成员不能访问类A的私有成员。 公有派生方式的总结: 1) 公有派生方式对派生类的对象来说,基类成员的权限不变,私有成员仍为私有成员,公有成员仍为公有成员。所以派生类的对象可以访问基类的公有成员,不能访问基类中的私有成员。 2) 由于派生类处于基类的类外,对于派生类中的成员不能访问基类的私有成员。 私有派生方式:private方式 当类B是从类A私有派生而来时,对类B的外部来说,即应用程序中类B的对象来说,类A中所有成员的访问权限在类 B中均为私有。 -对类B的对象基类所有的成员不可见 私有派生方式:private方式 当类B是从类A私有派生而来时,对类B的内部来说,即类B的成员来说,由于类A处于类B的外部,所以类B的成员不能访问类A的私有成员。 私有派生方式的总结: 1) 私有派生方式对派生类的对象来说,基类成员的均为私有,所以派生类的对象不能访问基类中的任何成员。 2) 由于派生类处于基类的类外,对于派生类中的成员不能访问基类的私有成员。 保护成员(protected) 类中访问属性为 protected 的成员叫做保护成员。 保护成员具有双重性质: -对于其派生类而言为公有的。 -对于外部程序而言为私有的。 这样的性质使得类成员既方便了派生类的访问,又阻止了外部的随意访问。 对于公有派生和私有派生下我们刚才只给出了私友成员和公有成员的总结表,现在加入保护成员给出如下: 保护派生方式:protected方式 当类B是从类A保护派生而来时: 1) 对于类B的外部来说,即应用程序中类B的对象来说,类A的私有成员仍为私有成员,类A中的保护成员和公有成员的访问权限在类B中均为保护成员。不能访问任何成员。 2) 对于类B的内部来说,即类B的成员来说,由于类A处于类B的外部,所以类B的成员不能访问类A的私有成员。 * * Student类的定义如下: class Student{ private: char Name[9]; int Age; char Sex; long ID; float score; public: Student( char*, int, char, long, float); void GetName(char*); int GetAge( ); char GetSex(

文档评论(0)

497721292 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档