- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言PPT谭浩强教材配套版第十五章
15.1 概述 15.2 类和对象 15.3 构造函数和析构函数 15.4 继承与派生 15.1 概述 C++不仅扩充了C面向过程的功能,而且增加了面向对象的功能,这就使C++成为能适应面向对象程序设计的现代大型语言。C++不是简单地对C做了某些改进,而是在C成功的基础上进行了一场革命。赋予C以新的生命力。 客观世界中任何一个事物都可以看成一个对象。或者说,客观世界是由千千万万个对象组成的,它们之间通过一定的渠道相互联系,如图15.1示意。在实际生活中,人们往往在一个对象中进行活动,或者说对象是进行活动的基本单位。作为对象,它应该至少有两个要素:一是从事活动的主体;二是活动的内容。要进行活动,或者是事先安排好一个活动计划,或者由外界临时通知。 图15.1 图15.2 从计算机的角度看,一个对象应该包括两个要素:一是数据;二是需要进行的操作。对象就是一个包含数据以及与这些数据有关的操作的集合。图15.2 表示一个对象是由数据和操作代码组成的。 传统的面向过程程序设计是围绕功能进行的,用一个函数实现一个功能。所有的数据都是公用的,一个函数可以使用任意一组数据,而一组数据又能被多个函数所使用(见图15.3)。程序设计者必须考虑每一个细节,什么时候对什么数据进行操作。当程序规模较大、数据很多、操作种类繁多时,程序设计者往往感到难以应付。 图15.3 面向对象程序设计采用新的思路。它面对的是一个个对象。所有的数据分别属于不同的对象。实际上,每一组数据都是有特定的用途的,是某种操作的对象。把相关的数据和操作放在一起,形成一个整体,与外界相对分隔。面向对象程序设计方法的一个重要特点就是“封装性” ,把数据和操作代码封装在一个对象中。程序设计者的任务包括两个方面:一是设计对象,即决定把哪些数据和操作封装在一起;二是在此基础上怎样通知有关对象完成所需的任务。这时他如同一个总调度,不断地向各个对象发出命令,让这些对象活动起来,完成自己范围内的操作。各个对象的操作完成了,整体任务也就完成了。显然,对一个大型任务来说,面向对象程序设计方法将是十分有效的,它能大大降低程序设计人员的工作难度,减少出错机会。 15.2 类 和 对 象 每一个实体都是对象。有一些对象是具有相同的结构和特性的。在C++中对象的类型称为“类”(class) 。类代表了某一批对象的共性和特征。可以说:类是对象的抽象,而对象是类的具体实例。正如同结构体类型和结构体变量的关系一样,人们先声明一个结构体类型,然后用它去定义结构体变量。同一个结构体类型可以定义出多个不同的结构体变量。在C++中也是先声明一个“类”类型,然后用它去定义若干个同类型的对象。对象就是一个“类”类型的变量。类是用来定义对象的一种抽象数据类型,或者说它是产生对象的模板。它的性质和其他数据类型(如整型、实型、枚举类型、结构体类型)相同。在一开始时弄清对象和类的关系是十分重要的。 C++对C的改进,最重要的就是增加了“类” 这样一种数据类型。所以C++开始时被称为“带类的C”。所有面向对象的语言都提供了这种数据类型。 在C++中怎样声明一个“类”类型呢?其方法和声明一个结构体类型是相似的。下面是我们已熟悉的声明一个结构体类型: struct student {int num; char name[10]; char sex ; }; struct student student1,student2; 上面声明了一个名为student的结构体类型并定义了两个结构体变量student1和student2。可以看到它只包括数据(变量),没有包括操作。如果希望对结构体变量中各成员赋值或输出它们的值,需要另外编写有关的操作语句。结构体变量中各成员在本作用域中都是“敞开”的,大家都可以用,而且不受任何限制。这就造成程序的不安全。现在我们声明一个类: class stud//以class开头 {int num; char name[10]; char sex ; //以上3行是数据成员 void display( ) //这是成员函数 {coutnum:numendl; coutname:nameendl; coutsex:sexendl; } //以上4行是操作代码 }; stud stud1,stud2; //定义了两个stud 类的对象 这就声明了一个名为stud的类。可以看到声明“类”的方法是由声明结构体类型的方法发展而来的。它除了包含数
您可能关注的文档
最近下载
- 感悟生命_我的生命之树_教案 心理健康八年级全一册.docx VIP
- 企业架构(4A架构)一体化设计方法.docx VIP
- 文秘英语实训(第二版)教参..doc
- 2023-2024学年山东省青岛二中高一(上)期中数学试卷【答案版】.pdf VIP
- 四川省绵阳市涪城区2025届九年级下学期中考三模数学试卷(含答案).docx VIP
- 文学常识题库(含答案).docx VIP
- 主检医师规范化及能力提升培训考试试题.docx
- T_CMSA 0021—2021_民用无人机作业气象条件等级植保.pdf VIP
- 2023年广西玉林市玉州区小升初数学试卷附答案解析.docx VIP
- T/CCIAT 0015-2020 建筑劳务管理标准.pdf VIP
文档评论(0)