10派生类成员的访问.pptxVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
;;? 对派生类来说,成员分为两大类: ? (1)一类是从基类继承过来的成员; ? (2)一类是自己新生成的成员。;? 如果没有继承,一个类只有两种类型的访问者:类成员和类用户。将类划分为private和public访问级别反映对访问者的访问权限:类用户只能访问公有成员,类成员和友元既可以访问公有成员也可以访问私有成员。 ? 有了继承,就有了类的第三种访问者:派生类成员。;? 派生类通常需要访问(一般为私有的)基类成员,为了允许这种访 问而仍然禁止外部对基类的一般访问,可以使用protected访问标 号。类的protected部分仍然不能被类用户访问,但可以被派生类 访问。 ? 只有基类类成员及其友元可以访问基类的private部分,派生类不能 访问基类的私有成员。;? 类的保护成员用protected访问标号声明,可以认为protected访问 标号是private和public的混合: ? ①像私有成员一样,保护成员不能被类用户访问。 ? ②像公有成员一样,保护成员可以被该类的派生类访问。 ? 如果基类声明了私有成员,那么任何派生类都是不能访问它们的, 若希望在派生类中能访问它们,应当把它们声明为保护成员。 ? 所以如果在一个类中声明了保护成员,就意味着该类可能要用作基 类,在它的派生类中会访问这些成员。;10.1 类的保护成员;? 派生类中包含继承来的成员和自己新增的成员,因而产生了这两部 分成员的关系和访问属性的问题。 ? 对基类成员和派生类自身的成员是按不同的原则处理的,需要考虑 以下6种情形: ? (1)基类的成员和友元访问基类成员; ? (2)派生类的成员和友元访问派生类自己新增的成员; ? 对于第1种和第2种的情形,可以按以下规则处理,即:基类的类成 员和友元可以访问基类成员,派生类的类成员和友元可以访问派生 新增的类成员。私有成员只能被同一类中的类成员访问,公有成员 可以被类用户访问。;? (3)基类的成员访问派生类新增的成员; ? 第3种的情形,基类的成员不能直接访问派生类的成员(因为有基 类的时候尚未有派生类),但可以通过虚函数间接访问派生类的成 员。 ? (4)类用户访问派生类的成员??? ? 第4种的情形,比较明确,类用户可以访问派生类的公有成员,不 能访问派生类任何私有的或保护的成员。;? (5)派生类新增的成员访问基类的类成员; ? (6)类用户访问派生类的基类成员。 ? 第5种和第6种的情形比较复杂,其访问形式实际是两种形式: ①内部访问:由派生类中新增成员对基类继承来的成员的访问。 ②对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。;? 不同的继承方式决定了基类成员在派生类中的访问属性。 ? (1)公有继承(public inheritance) ? 基类的公有成员和保护成员在派生类中保持原有访问属性,私有成 员仍为基类私有。 ? (2)私有继承(private inheritance) ? 基类的所有成员在派生类中为私有成员。 ? (3)保护继承(protected inheritance) ? 基类的公有成员和保护成员在派生类中成了保护成员,私有成员仍 为基类私有。;表10-1 不同继承方式下的基类特性和访问属性;? 无论采用何种继承方式得到的派生类,派生类成员及其友元都不能 访问基类的私有成员,派生类外部的用户只能访问公有属性的成员。 ? 多级派生的情况下,保护继承和私有继承会进一步地将基类的访问 权限隐蔽成不可访问的。 ? 一般地,保护继承与私有继承在实际编程中是极少使用的,它们只 在技术理论上有意义。;;;? 赋值兼容规则是指在需要基类对象的任何地方,都可以使用公有派 生类的对象来替代。 ? 通过公有继承,派生类得到了基类中除构造函数、析构函数之外的 所有成员。这样,公有派生类实际就具备了基类的所有功能,凡是 基类能解决的问题,公有派生类都可以解决。 ? 赋值兼容规则中所指的替代包括以下的情况: ? ①派生类的对象可以赋值给基类对象; ? ②派生类的对象可以初始化基类的引用; ? ③派生类对象的地址可以赋给指向基类的指针。;;【例10.2】赋值兼容规则举例1;;;;【例10.2】赋值兼容规则;

文档评论(0)

有谱教育资源分享 + 关注
实名认证
文档贡献者

热爱生活,分享教育专业文档! 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档