- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十讲 类与对象 第十讲 类与对象 对象成员及其初始化 类作用域 类的静态成员 静态数据成员 静态成员函数 友元 友元函数 友元类 堆对象 对象数组 对象成员 对象成员:一个类的对象作为另一个类的数据成员。 一个类中的数据成员除了可以是int, char, float等这些基本的数据类型外,还可以是某一个类的一个对象。 这是一种创建新类的方法。 包含对象成员的类的定义格式为: 这是一种对象间的包含关系(has-a) 。 对象成员 对象成员的初始化 如果一个类A的对象是另一个类B的数据成员,那么在创建类B的对象时,类A的对象也会被自动创建。 对象成员初始化的顺序 在构造新类的对象过程中,系统首先调用其子对象的构造函数,初始化子对象;然后才执行类X自己的构造函数,初始化类中的非对象成员。 对于同一类中的不同子对象,系统按照它们在类中的说明顺序调用相应的构造函数进行初始化,而不是按照初始化表的顺序。 对象成员 案例分析:对象成员的初始化 定义三个类,观察对象的构造过程。 Student、Teacher和Tourpair,其中Student类的对象和Teacher类的对象作为了Tourpair的数据成员 对象成员 案例分析:对象成员的初始化 对象成员 对象成员的初始化 注意: 如果类A的构造函数为有参函数时,则必须在类B的初始化表中指明被调用的类A的构造函数及其参数,即初始化表的方式调用构造函数。 如:以类X为例,其构造函数的定义格式应为: 其中,参数表1提供初始化成员1所需的参数,参数表2提供初始化成员2所需的参数,依此类推。 这几个参数表的中的参数均来自参数表0。 另外,初始化X的非对象成员所需的参数,也由参数表0提供。 对象成员 案例分析:对象成员的初始化 试分析以下程序的执行结果。(cw1011) 对象成员 案例分析:对象成员的初始化 对象成员 案例分析:对象成员的初始化 对象成员 案例分析:对象成员的初始化 常量数据成员的初始化 利用初始化表对常量数据成员或引用成员提供初值 构造函数可对对象的数据成员进行初始化,但若数据成员为常量成员或引用成员时,就有所不同。 例如(cw1023) 常量数据成员的初始化 利用初始化表对常量数据成员或引用成员提供初值 说明 造成以上错误的原因是在Sillyclass类的构造函数进入之后(开始执行其函数体时),对象结构已经建立,数据成员ten和refi已存在,而其数据成员ten为const,而refi为引用,所以在构造函数的函数体内不能再对其指派新的值。 解决以上问题的方法是利用初始化表。 常量数据成员的初始化 案例分析:常量数据成员或引用成员的初始化 类employee。(cw1020) 常成员函数 常成员函数 使用const说明的成员函数。 声明和定义的格式: 常成员函数为只读函数。 可以读取数据成员的值,但不能修改数据成员的值。 不能调用类中其他非常成员函数。 常成员函数 案例分析:常成员函数 观察常成员函数。(cw1021) 常成员函数 案例分析:常成员函数 观察常成员函数。(cw1021) 常对象 常对象 即对象常量。 定义格式: const 类名 对象名; 类名 const 对象名; 说明: 在定义时应该进行初始化,而且其数据成员的值在整个生存期内不能被修改。 只能调用类中常成员函数。 常对象 案例分析:常对象 观察常对象。(cw1022) 类作用域 类作用域 类作用域又可称为类域。 它是指在类定义中用一对大括号所括起来的范围。 由于在程序文件中可包含类,而类中又包含函数,因此,类域显然是一个小于文件域,而大于函数域的概念。 由于在一个类中既可定义变量,又可定义函数,所以类域在许多方面与文件域相似。 但是,在类域中定义的变量不能使用auto、register和extern等修饰符,而且在类域中定义的函数也不能使用extern修饰符。 同时,在类域中定义的静态数据成员和静态成员函数还具有外部的链接属性。 类作用域 案例分析:类域及其成员引用 观察类成员的引用方式。(cw1012) 类作用域 案例分析:类域及其成员引用 续 类作用域 案例分析:类域及其成员引用 说明 类成员函数的原型在类的定义体中声明,具有类作用域,但其实现部分在类的定义体外。由于不同类的成员函数可以具有相同的名字,因此,需要用作用域运算符“::”来指明该成员函数所属的类。 类中的成员拥有类作用域,因此在成员函数中可以直接引用类的数据成员。但是,如果在成员函数中定义了同名的局部变量时,则必须用作用域运算符“::”来限定,以免混乱。 如:上例中的myfunc()函数中定义了与类的数据成员同名的局部变量x、y,所以在myfunc()函数中要访问类中的数据成员x和y的值时,必须加上作用域
您可能关注的文档
- 主板点不亮维修实例幻灯片.doc
- 液晶显示器故障实例之电源指南.doc
- 主板上电流程幻灯片.docx
- 博艺通讯常见问题解决方法摘要.doc
- 启动设备无法引导系统解决方法.doc
- 恢复操作系统或整个服务器课件.doc
- 第三章 电脑主板检测卡代码大全.doc
- SQL日期与时间函数.doc
- 细菌性食物中毒概论.doc
- 中兴SDH认证考试题库(三)幻灯片.doc
- 2025年成都市玩偶生产荧光涂鸦互动玩偶开发可行性研究报告.docx
- 2025年成都市海绵生产用于体育馆室外运动场地透水改造可行性研究报告.docx
- 2025年天津市体操鞋企业团建运动应用报告.docx
- 2025年上海市溶洞极限运动(速降)场地开发可行性研究报告.docx
- 2025年上海市涵洞工程施工技术应用可行性研究报告.docx
- 2025年上海市体育场馆设施扎带安全防护可行性研究报告.docx
- 2025年上海市牦牛育肥产业园区建设可行性研究报告.docx
- 2025年旅拍宠物陪伴拍摄项目可行性研究报告.docx
- 2025年上海市进口食品节庆主题快闪店可行性研究报告.docx
- 2025年上海市洗选厂尾矿综合利用产业化可行性研究报告.docx
最近下载
- GB15763.1-2009 建筑用安全玻璃 第1部分:防火玻璃 (2).pdf VIP
- DB5101T 217—2025成都市城市绿化养护技术规程.pdf
- 漫画解读--非煤露天矿山重大事故隐患判定标准.pdf
- 伤口、造口、失禁性皮炎理论考试试题与参考答案.docx VIP
- LNG气化站安装工程施工的方案.doc VIP
- 2023年8月26日全国事业单位联考A类《职业能力倾向测验》真题.pdf VIP
- 跨境电子商务英语 课件 柯可 Unit 1 Overview of Cross-Border E-Commerce、 Unit 2 Main Cross-Border E-Commerce Platforms.pptx
- 2024年辅警招聘《公安工作基本知识》培训考试题库 (附答案).docx VIP
- 低氧对肝脏脂质代谢影响研究.docx VIP
- GB T 34986-2017 产品加速试验方法.doc VIP
文档评论(0)