C++学习教程题 第六章.doc

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C学习教程题第六章

教学目标 ●了解封装与数据隐藏的软件工程概念 ●了解数据抽象和抽象数据类型 ADT 的符号 ●生成C++的ADT 即类 ●了解如何生成、使用和删除类对象 ●控制对象数据成员和成员函数的访问 ●开始认识面向对象的价值 ? 6.1? 简介 下面开始介绍C++中的面向对象。为什么把C++中的面向对象推迟到第6章才开始介绍呢?原因是我们要建立的对象是由各个结构化程序组件构成,因此先要建立结构化程序的基础知识。 在第1章到第5章的“有关对象的思考”小节中,我们介绍了C++中的面向对象编程的基本概念 即“对象思想” 和术语 即”对象语言” 。在这些”有关对象的思考”小节中,介绍了面向对象设计 object-orienteddesign,OOD 的方法:我们分析了典型问题的陈述,要求建立一个系统 电梯模拟程序 ,确定实现该系统所需的类,确定这些类对象的属性,确定这些类对象的行为,指定对象之间如何通过交互以完成系统的总体目标。 下面简要介绍面向对象的一些关键概念和术语。OOP将数据 属性 和函数 行为 封装 encapsulate 到称为类 class 的软件包中,类的数据和成员是密切联系的。就像蓝图,建筑人员通过蓝图建造房子,而程序虽则通过类生成对象。一个蓝图可以多次复用.建造多幢房子;一个类也可以多次夏用,建立多个对象。类具有信息隐藏 information hiding 属性,即类对象只知道如何通过定义良好的接口 interface 与其他类对象通信,但通常不知道其他类的实现方法,实现细节隐藏在类中。我们可以熟练地开车,而不需要知道发动机、传递系统和燃油系统的工作原理。我们可以看到信息隐藏对良好的软件工程是多么重要。 在C语言和其他过程化编程语言 proceduralprogramminglanguage 中,编程是面向操作的 action-oriented ,而在C++中,编程是面向对象的 object-oriented 。在C语言中,编程的单位是函数 function ,而在C++中.编程的单位是类 class ,对象最终要通过类实例化。 C语言程序员的主要工作是编写函数,完成某个任务的一组操作构成函数,函数的组合则构成程序。数据在C语言中当然很重要,但这些数据只用于支持函数所要进行的操作。系统指定中的动词帮助C语言程序员确定一组用于实现系统的函数。 C++程序员把重点放在生成称为类的用户自定义类型 user-definedtype ,类也称为程序员定义类型 programmer-defined type 。每个类包含数据和操作数据的一组函数。类的数据部分称为数据成员 data member 。类的函数部分称为成员函数 member function,有些面向对象语言中也称为方法 。int等内部类型的实例称为变量 variable ,而用户自定义类型 即类 的实例则称为对象 object 。在C++中,变量与对象常常互换使用,C++的重点是类而不是函数。系统指定中的名词帮助C++程序员确定实现系统所需的用来生成对象的一组类。 C++中的类是由C语言中的struct演变而来的。介绍C++类的开发之前.我们先使用结构建立用户自定义类型,通过介绍这种方法的缺点从而说明类的优点。 6.2? 结构定义 结构是用其他类型的元素建立的聚合数据类型。考虑下列结构定义: ?struct Time int hour; // 0-23 int minute;??? // 0-59 int second;??? // 0-59 ; ? 结构定义用关键字struct引入。标识符Time是个结构标志 structure tag ,命名结构定义并声明该结构类型 structure type 的变量。本例中,新类型名为Time。结构定义花括号中声明的名称是结构的成员 member 。同一结构的成员应有惟一名称.但两个不同结构可以包含同名成员而不会发生冲突。每个结构定义应以分号结尾。上述解释对后面要介绍的类也适用,C++中的结构和类是非常相似的。 Time的定义包含三个int类型的成员hour、minute和second。结构成员可以是任何类型,一个结构可以包含不同类型的成员。但是,结构不能包含自身的实例。例如,Time类型的成员不能在Time的结构定义中声明,但该结构定义中可以包含另一Time结构的指针。当结构包含同一类型结构的指针时,称为自引用结构 self-referential structure 。自引用结构用于形成链接数据结构,如链表、队列、堆栈和树等 见第15章介绍 。 上述结构定义并没有在内存中保留任何空间,而是生成新的数据类型,用于声明变量。结构变量和其他类型的变量一样声明。下列声明: Time timeObject,timeArray[10]

文档评论(0)

rzz181 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档