- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第三讲 抽象性和封装性的实现 * 当一个对象创建时,分配了资源,这时必须显式定义复制构造函数)。这种在用一个对象初始化另一个对象时,不仅复制了成员,也复制了资源的复制方式称为深复制。 举例说明: * 第三讲 抽象性和封装性的实现 * id name age score id name age score id name age score 堆 堆 堆 S1 S1 S2 复制前 复制后 图2-深复制示意图 第三讲 抽象性和封装性的实现 第三讲面向对象技术应用中抽象性和封装性实现 * 第三讲 抽象性和封装性的实现 * 内容提要 分析面向对象程序的组成 发现对象及结构,抽象为类 面向对象程序中封装的实现 * 第三讲 抽象性和封装性的实现 * 分析面向对象程序的组成 演示面向对象程序 分析吹泡泡程序 分析中国象棋 分析防空战游戏 * 第三讲 抽象性和封装性的实现 * 发现对象及结构 发现对象 定义属性 确定行为 抽象为类 * 第三讲 抽象性和封装性的实现 * 面向对象程序中封装的实现 类的定义 对象的声明 构造函数与析构函数 复制构造函数 静态成员 * 第三讲 抽象性和封装性的实现 * 类 从语言角度来说, 类是一种自定义数据类型 对象是具有这种类型的变量 类是一种将数据和作用于这些数据上的函数组合在一起的复杂数据类型,是可重用的基本单元。 * 第三讲 抽象性和封装性的实现 * 类 类是面向对象程序设计的核心,利用它可以实现对象的抽象、数据和操作的封装以及信息的隐蔽。 * 第三讲 抽象性和封装性的实现 * 类定义 类定义一般分为说明部分和实现部分: 说明部分是说明该类中的成员 实现部分是对成员函数的定义 类定义的一般格式如下 : class 类名 { public: 数据成员或成员函数的声明; private: 数据成员或成员函数的声明; 说明部分 protected: 数据成员或成员函数的声明; }; 各个成员函数的定义 实现部分 * 第三讲 抽象性和封装性的实现 * 示例类定义。 类成员包括数据成员和成员函数。 * 第三讲 抽象性和封装性的实现 * 访问控制 访问权限有三种类型:private、public和protected。 三种访问权限的成员与出现的先后顺序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。 * 第三讲 抽象性和封装性的实现 * 成员函数的实现 成员函数是类中描述行为的成员,同时也是对封装的数据进行操作的惟一途径。 类定义的格式中,一般在类中说明成员函数原型,在类外进行成员函数的具体实现,各个成员函数的定义是类的实现部分。同时,如果成员函数已经在类中定义,则不需要在类外实现。需要注意的是,在类中定义的成员函数自动成为内联函数。 * 第三讲 抽象性和封装性的实现 * 若在类体外实现,则需要使用作用域运算符“::”,用它来标识某个成员函数是属于哪个类的,其定义格式如下: 返回值类型 类名::成员函数名(参数表) { 函数体 } * 第三讲 抽象性和封装性的实现 * 对象 对象的定义格式与普通变量相同。定义格式如下: 类名 对象名表; 其中,对象名表中可以有一个或多个对象名。当有多个对象名时,用逗号分隔。对象名表中还可以是指向对象的指针名或引用名,也可以是对象数组名。 * 第三讲 抽象性和封装性的实现 * 类成员的访问 定义了类及其对象,就可以通过对象来使用其公有成员,从而达到对对象内部属性的访问和修改。 对象对其成员的访问有圆点访问形式和指针访问形式。 对象名.公有成员 对象指针名 - 公有成员 * 第三讲 抽象性和封装性的实现 * 构造函数和析构函数 类描述了一类对象的共同特征,而对象是类的特例。每个对象区别于其他对象的地方就是依靠它自身属性,即数据成员的值。对象在定义的时候可以进行数据成员的设置,称为对象的初始化。同样,在对象使用结束时,还可以进行一些相关的清理工作。C++中对象的初始化和清理工作,分别由两个特殊的成员函数来完成,它们就是构造函数和析构函数。 * 第三讲 抽象性和封装性的实现 * 构造函数 构造函数的功能是在定义对象时被编译系统自动调用来创建对象并初始化对象。 其定义格式如下: 类名::类名(参数表) { 函数体 } * 第三讲 抽象性和封装性的实现 * 构造函数的特点 构造函数是成员函数,函数体可写在类体内,也可写在类体外。 构造函数的函数名与类名相同,且不指定返回值类型,它有隐含的返回值,该值由编译系统内部使用。 构造函数可以没有参数,也可以有参数,因此可以重载,即可以定义参数不同的多个构造函数。 * 第三讲 抽象性和封装性的实现 * 构造函数的特点 每个类都必须有一个构造函
您可能关注的文档
- 第八章传染病概述实训指导.ppt
- 第二十一章中药制剂稳定性.ppt
- 第二章感觉基础食品感官检验.ppt
- 第二章青少认知发展和学习.ppt
- 第九章皮质激素类药物.ppt
- 第六章营销渠道成员之一批发商.ppt
- 第六章真核生物遗传规律全面分析.ppt
- 第三讲斯金纳程序教学理论.ppt
- 第三章GPS定位坐标系统和时间系统.ppt
- 第三章学习类型学习策略和学习方式学和教.ppt
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
- DB62T 4172-2020 玉米品种 酒623规范.pdf
- DB62T 4160-2020 在用真空绝热深冷压力容器综合性能在线检测方法.pdf
- DB62T 4164-2020 辣椒品种 酒椒1号.pdf
- DB62T 4133-2020 公路隧道地质超前预报机械能无损探测技术规程.pdf
文档评论(0)