大工面向对象编程基础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文档。上传文档
查看更多
* Mouse Screen Device Keyboard Tree AppleTree Fruit * 访问控制 访问控制用语控制基类中声明的名字在多大的范围内能够被派生类的用户访问 访问控制有三种public,protected,private 基类模块 派生类模块 间接派生类模块 其他程序模块 * * 公有继承 * 公有继承 * 私有继承 * 私有继承 * 在派生类中访问基类成员 * 保护的成员 对V模块是public 对H模块是private * 保护的成员 * 多继承 可以将其视为单继承来考察,每个基类与派生类的关系可以当做单基继承。 * 构造函数和析构函数 派生类的数据成员由属于基类的部分和属于自己的部分组成,属于基类的部分初始化应由基类的构造函数完成。 构造函数不被继承,派生类必须调用基类的构造函数来初始化属于基类的部分数据成员。 一般形式如下: C::C(参数表0):C1(参数表1),C2(参数表2),…,Cn(参数表n) {…} * 构造函数和析构函数 如果冒号右边的某个基类的构造函数参数表为空,则可以省略该项。 构造对象时,先执行基类的构造函数,然后执行派生类的构造函数。析构时则相反。 多基继承时基类构造函数的执行顺序由继承时的顺序决定(从左向右),与初始化列表中的顺序无关。 * 构造函数和析构函数 * 构造函数和析构函数 * 构造函数和析构函数 * 构造函数和析构函数 * 构造函数和析构函数 * 二义性 如果派生类的一个表达式引用基类中不止一个成员,则存在二义性。 解决二义性的办法是加类限定符。 * 二义性 * 二义性 * 二义性 如果一个派生类是从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的标识符进行访问时可能产生二义性。 * 二义性 B{b} B1{b1} C{f(),d} B{b} B2{b2} * 二义性 * 虚基类 为避免一个基类在多条继承路径上造成在派生类中产生多个基类子对象,可以采用虚基类技术。 语法如下 class B1:virtual public B{} class B2:virtual public B{} class C:public B1,public B2{} * 派生类的赋值和初始化 如未定义拷贝构造函数和赋值操作,则编译器提供。 如自定义,则应在实现中调用基类的拷贝构造函数和赋值操作。 * 第十二章 虚函数与多态性 如果类型S是从类型T共有继承的,则称类型S是类型T的子类型。 类型S的指针或引用可以适用于类型T的指针或引用的场合。 * 动态绑定与虚函数 由于在基类和派生类中,相同的名字执行的操作可能不同,所以基类的成员函数在派生类中经常有不同的实现。 用virtual关键字可以实现动态绑定。 动态绑定只适用于虚函数的参数是指针或引用的情况。 * 动态绑定与虚函数 * 动态绑定与虚函数 * 动态绑定与虚函数 * * 指针数组 数组元素的类型是指针,这样的数组称指针数组。 语法: T* 标识符[元素个数]; * 多维数组与指针 多维数组可以解释为其元素是多维数组的一维数组。 * this指针 一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向正被该函数操作的对象的指针,在程序中可以用this引用它,因此称其为this指针。 * 具有子对象的类类型 用内部包含子对象的类实现复杂的类 子对象的初始化 * * * * * 第九章 对类的进一步讨论 拷贝构造函数 赋值 const关键字 类型强制 * 拷贝构造函数 使用一个对象初始化一个正在建立的同类对象。 拷贝初始化构造函数的参数是引用参数。 每个类都一定有一个拷贝初始化构造函数 如未定义,则编译器自动生成一个。 功能: 用作为初始值的对象的每个数据成员初始化正建立对象的对应的数据成员。 * * 以值调用方式传递参数时 函数返回对象时 * 赋值 当需要进行对象之间的赋值操作时,必须定义赋值操作。 为与习惯一致,一般用作为=赋值操作符 当使用操作符作为函数名时,必须与关键字operator合用。 赋值操作的参数最好用引用方式。 * * 赋值操作的参数最好采用引用方式。 赋值操作的最好返回对被赋值对象的引用。 一般形式: X X::operator=(const X p); * 编译器产生的拷贝初始化和赋值操作的缺陷 当类中声明有指针数据成员时,将产生问题。 * const关键字 是一个类型修饰符,const描述的类型定义的对象是常对象。 Int const a=1; int *const p; p--* const --int const int *a; a-- * --const int 确定不修改对象的数据成员的成员函数可以定义为const函数。 Const成员函数不能更新非静态数据成

文档评论(0)

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

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

1亿VIP精品文档

相关文档