- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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】赋值兼容规则;
您可能关注的文档
最近下载
- 胆总管结石小讲课.pptx VIP
- 基于stm32嵌入式技术的智能药盒设计.docx VIP
- 广西公务员考试《行测》通关模拟试题及答案解析【2022】:70 - 行测模拟题.docx VIP
- 学堂课程在线“一带一路”沿线国家跨文化商务交际(大连外国语大学)期末测试答案.docx VIP
- 教职工篮球组队训练方案.docx
- 第29课对手是一面镜子ppt.ppt
- 桥头搭板施工技术交底.docx VIP
- JTG 3432—2024 公路工程集料试验规程.docx
- 05s502-砖砌矩形水表井.pdf
- 09作文-湖南省长沙市五年(2018-2022)小升初语文卷真题分题型分层汇编(共28题).doc VIP
文档评论(0)