面向对象程序设计(C++版).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文档。上传文档
查看更多
面向对象的程序设计 第一章 绪 论 1.1 面向对象程序设计概述 1.2 面向对象的基本概念 第二章 封装性——类与对象 2.1 封 装 性 2.2 C++类的构成 2.3 成员函数的定义 2.4 类与对象 2.5 构造函数与析构函数 2.6 静 态 成 员 2.7 类对象作为成员 2.8 对 象 数 组 2.9 C + + 中的封装性 2.10 实 例 分 析 第三章 友 元 3.1 友元的说明和定义 3.2 友 元 函 数 3.3 友 元 成 员 3.4 友 元 类 第四章 引 用 4.1 引 用 的 概 念 4.2 引 用 参 数 4.3 引 用 返 回 值 第五章 继承性与类的派生 5.1 继 承 性 5.2 派生类的概念 5.3 派生类对基类成员的继承 5.4 多 继 承 5.5 赋 值 兼 容 规 则 ? 虚基类 解决多继承环境中 因公共基类带来二义性 的一种机制 为什么使用虚基类 # include iostream . h class x { protected : int a ; public : x( ) { a = 10 ; } } ; class x1 : public x { public : x1( ) { cout a \n ; } } ; x x x1 x2 y class x2 : public x { public : x2( ) { cout a \n ; } } ; class y : x1 , x2 { public : y( ) { cout a \n ; } } ; void main( ) { y obj ; } 出现二义性 x1 x2 y x 对应两个基类副本 合并基类副本 姓名 性别 年龄 … 学号 成绩 … 职工号 职称 … 在职研究生 人 学生 教师 除自身特性外,还既有学生特性又有教师特性,但在职研究生本身是一个人,只能保留一份“人”的数据。 虚基类的概念 定义派生类时加上 virtual 继承方式 基类名 为了只保存公共基类的一个副本,就可将这个公共 基类说明为虚基类。 class x1 : virtual public x { // … } ; class x2 : virtual public x { // … } ; 即可解决上述问题   一个基类,在定义它的派生类时,允许既可作为某 些派生类的虚基类,同时又可作为另一些派生类的非虚 基类。 例如: class x : virtual public b { } class y : virtual public b { } class z : public b { } class aa : public x , public y , public z { } aa x y z b b 虚基类的初始化 语法同多继承的初始化 但构造函数的调用次序不同 原则: ①虚基类的构造函数在非虚基类之前调用; ②若同一层次中包含多个虚基类,这些基类的构造函数按它们说明的次序调用; ③若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数; ④虚基类只允许定义不带参数的或带缺省参数的构造函数。 # include iostream . h // P207 class base { public : base( ) { cout base class ! \n ; } } ; class base2 { public : base2( ){ cout base2 class ! \n ; }

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档