C++程序设计 任化敏 chapter10-类的进一步学习新.pptVIP

C++程序设计 任化敏 chapter10-类的进一步学习新.ppt

  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文档。上传文档
查看更多
第十章 类的进一步学习 inline成员函数 类对象数组 const 复制构造函数 运算符重载 异常类 10.1 inline成员函数 定义格式如下: inline 类型标识符 函数名 (形参表){ 函数体 } 类在C++中占有十分重要的地位,它是实现面向对象程序设计的基础。 类定义了数据成员和成员函数,数据成员用于存储与该类类型的对象相关联的数据状态,而成员函数则负责执行赋予数据意义的操作。 10.1 inline成员函数 10.2 类对象数组 如果一个数组中每个元素都是同类型的对象,则称该数组为对象数组 对象数组的定义、赋值和引用与普通数组一样 定义一维对象数组的格式 类名指出该数组元素的类型 方括号内的整形常量表达式给出一维数组元素的个数 10.3.2 const成员函数(常成员函数) 常成员函数的说明格式 如果只对对象进行读操作,可以将成员函数设计为常成员函数 10.3.3 指向对象的常指针 常指针 将指向对象的指针变量声明为const,并初始化,这样的指针始终保持为初始值,不能被修改 常指针变量必须始终指向同一个对象,但是可以改变所指对象的数据成员的值 适用情况: 常指针主要适用于将一个指针变量固定的与一个类对象绑定,经常会用常指针作为函数的形参,目的是不允许函数执行过程中修改指针变量的值 10.4.1 定义形式 10.4.2 合成的复制构造函数 合成复制构造函数(Synthesized Copy Constructor) 如果没有定义复制构造函数,编译器就会合成一个复制构造函数,合成复制构造函数会执行逐个成员的初始化,将新对象初始化为原对象的副本 示例 10.4.3 为什么需要复制构造函数 在默认的复制构造函数中,复制的策略是直接将原对象的数据成员值依次复制给新对象中对应的数据成员。那么我们是否可以直接使用系统默认的合成复制构造函数而不必去自己定义复制构造函数呢?答案否定的。因为有些情况下,使用合成复制构造函数会出现意想不到的问题 当类的数据成员中包含指针类型变量时,我们必须自定义一个复制构造函数来实现原对象和新对象之间数据成员的复制 10.4.4 自定义复制构造函数 形式 class F { public: F(); //默认构造函数 F(const F); //复制构造函数 } 10.5.2 重载运算符的注意事项 C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载 C++允许重载的运算符如表10-2所示 C++不允许重载的运算符包括 .(成员访问运算符) .*(成员指针访问运算符) ::(类作用域运算符) sizeof(长度运算符) ?:(条件运算符) 重载不能改变运算符运算对象(即操作数)的个数 重载后,优先级和结合型不变 重载的运算符必须和用户定义的自定义类型的对象一起使用,其参数至少应该有一个是类对象或类对象的引用 10.6.2 用户自定义异常类 用户可以自定义异常类,定义之后使用方法与使用标准库异常类相同。程序的一个部分抛出某个自定义异常类对象,程序的另一部分捕获并处理指出的问题 C++程序设计 第二部分:面向对象编程 第十章 类的进一步学习 定义格式如下: 在成员函数前面加上inline,编译器调用该成员函数时,将在同一行内扩展该函数 类内部定义的不需要接受实参的成员函数,将被自动的作为inline函数处理 inline 类型标识符 函数名 (形参表){函数体} 类名 数组名[整型常量表达式] 10.3 const 10.3.1 const对象(常对象) 常对象 使用关键字const来说明的对象 定义格式 通过常对象只能调用常成员函数,而常成员函数只能读不能写数据成员 const 类名 对象名(初值) 提示:如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数 类型说明符 函数名(参数表) const 进一步解释:常成员函数既不能修改对象的数据成员,也不能调用该类中没有用const修饰的非常成员函数。 可以引用 不可以修改值 可以引用 不可以修改值 可以引用 不可以修改值 const成员函数 不可以引用和修改值 可以引用 不可以修改值 可以引用 也可以修改值 非const成员函数 const对象的数据成员 const数据成员 非const数据成员 表10-1 const与非const成员函数的访问数据成员的能力 10.4 复制构造函数 复制构造函数(Copy Constructor)是一种特殊的构造函数,它具有单个形参,该形参是对该类类型的引用,通常用const修饰。 当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式地调用复制构造函数。 当将该类型的对象传递给函数或从函

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档