面向对象程序设计教程(C++语言描述课件.ppt

上传人(卖家):晟晟文业 文档编号:4317877 上传时间:2022-11-29 格式:PPT 页数:167 大小:266KB
下载 相关 举报
面向对象程序设计教程(C++语言描述课件.ppt_第1页
第1页 / 共167页
面向对象程序设计教程(C++语言描述课件.ppt_第2页
第2页 / 共167页
面向对象程序设计教程(C++语言描述课件.ppt_第3页
第3页 / 共167页
面向对象程序设计教程(C++语言描述课件.ppt_第4页
第4页 / 共167页
面向对象程序设计教程(C++语言描述课件.ppt_第5页
第5页 / 共167页
点击查看更多>>
资源描述

1、第第1章章 面向对象程序设计概论面向对象程序设计概论面向对象程序设计教程(面向对象程序设计教程(C+语言描述)上语言描述)上第第1章章 面向对象程序设计概论面向对象程序设计概论第第1章章 面向对象程序设计概论面向对象程序设计概论1.1 程序设计方法程序设计方法1.2 面向对象程序设计的基本概念面向对象程序设计的基本概念1.3 面向对象程序设计语言面向对象程序设计语言1.4 C+C+对面向对象程序设计方法的支持对面向对象程序设计方法的支持1.5 C+C+程序的实现程序的实现 第第1章章 面向对象程序设计概论面向对象程序设计概论1.1 程序设计方法程序设计方法1.1.1 结构化程序设计方法结构化程

2、序设计方法1.1.2 面向对象的程序设计方法面向对象的程序设计方法返回首页返回首页目前有两种重要的程序设计方法:目前有两种重要的程序设计方法:第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.1 结构化程序设计方法 结构化程序设计的概念由瑞士计算机科学结构化程序设计的概念由瑞士计算机科学家家19711971年首次提出来,随之出现了支持结构化年首次提出来,随之出现了支持结构化程序设计方法的程序设计语言,例如程序设计方法的程序设计语言,例如C C语言。语言。结构化程序设计方法:结构化程序设计方法:强调程序结构的规范性,强调程序设计的强调程序结构的规范性,强调程序设计的自顶向下,逐步求精的

3、演化过程。在这种方法自顶向下,逐步求精的演化过程。在这种方法中,待解问题和程序设计语言中的过程紧密相中,待解问题和程序设计语言中的过程紧密相联。联。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.1 结构化程序设计方法 例如要开发一个成绩管理系统,由于问题较复例如要开发一个成绩管理系统,由于问题较复杂,我们将待解的问题分解成若干子问题:杂,我们将待解的问题分解成若干子问题:n输入成绩输入成绩n处理成绩处理成绩n打印成绩打印成绩 待解问题将对应到待解问题将对应到main()main()函数,每个函数,每个子问题对应到子问题对应到main()main()的调用函数的调用函数 第第1章章

4、 面向对象程序设计概论面向对象程序设计概论1.1.1 1.1.1 结构化程序设计方法结构化程序设计方法返回本节返回本节 随着程序规模与复杂性的增长,面向过程随着程序规模与复杂性的增长,面向过程的结构化程序设计方法存在明显的不足之处:的结构化程序设计方法存在明显的不足之处:u数据安全性问题数据安全性问题u可维护性及可重用性差可维护性及可重用性差u图形用户界面的应用程序,很难用过程来描图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。述和实现,开发和维护也都很困难。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法在结构化程

5、序设计方法中,程序可表示为:在结构化程序设计方法中,程序可表示为:程序程序=数据结构数据结构+算法算法 即程序的要素是数据结构和算法,数据结即程序的要素是数据结构和算法,数据结构是指利用计算机的离散逻辑来量化表达需要构是指利用计算机的离散逻辑来量化表达需要解决的问题,而算法则研究如何高效而快捷地解决的问题,而算法则研究如何高效而快捷地组织解决问题的具体过程。组织解决问题的具体过程。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法【例【例1.1】用】用C+语言描述,用结构化程序设计方法计语言描述,用结构化程序设计方法计算矩形的面积。算矩形的

6、面积。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法 在面向对象的程序设计方法中,对象是在面向对象的程序设计方法中,对象是数据结构和算法的封装体。数据结构和算法的封装体。根据这个定义,对象是计算机内存中的根据这个定义,对象是计算机内存中的一块区域。在对象中,不但存有数据,而且一块区域。在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间存有代码,使得每个对象在功能上相互之间保持相对独立。当然,对象之间存在各种联保持相对独立。当然,对象之间存在各种联系,但它们之间只能通过消息进行通信。程系,但它们之间只能通过消息进行通信。程

7、序可表示为:序可表示为:程序程序=对象对象+消息消息第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法【例【例1.21.2】用】用C+C+语言描述,用面向对象程序设计语言描述,用面向对象程序设计方法计算矩形的面积。方法计算矩形的面积。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法 通过这个程序可以知道面向对象程序程序通过这个程序可以知道面向对象程序程序的基本结构。一般情况下,面向对象程序都是的基本结构。一般情况下,面向对象程序都是由三个部分来构成:类的声明、类的成员的实由三个部分来构

8、成:类的声明、类的成员的实现和主函数。现和主函数。可见,在面向对象程序设计中,它着重于可见,在面向对象程序设计中,它着重于类的设计。类正是面向对象语言的基本程序模类的设计。类正是面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。块,通过类的设计,来完成实体的建模任务。第第1章章 面向对象程序设计概论面向对象程序设计概论1.1.2 面向对象程序设计方法面向对象程序设计方法 程序程序Li1_2Li1_2比程序比程序Li1_1Li1_1看起来要烦琐一些。看起来要烦琐一些。但是,如果以但是,如果以RectangleAreaRectangleArea类为基础,通过继类为基础,通过继承,可以

9、很方便地派生出长方体等新的几何体,承,可以很方便地派生出长方体等新的几何体,实现代码重用。实现代码重用。面向对象程序设计方法提供了软件重用、解面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。封装性、继承性和多态性等特点。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2 面向对象程序设计的基本概念面向对象程序设计的基本概念1.2.1 抽象抽象1.2.2 封装封装1.2.3 消息消息1.2.4 继承继承1.2.5 多态多态返回首页返回首页第第1章章 面向对象程序设计概论

10、面向对象程序设计概论1.2.1 抽象抽象 抽象就是忽略事物中与当前目标无关的非本抽象就是忽略事物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。类,得到一个抽象的概念。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.1 抽象抽象 面向对象方法中的抽象:指对具体问题面向对象方法中的抽象:指对具体问题(对象对象)进行概括,抽出一类对象的公共性质并加以描述进行概括,抽出一类对象的公共性质并加以描述的过程。的过程。它包括两个方

11、面:数据抽象和行为抽象(或它包括两个方面:数据抽象和行为抽象(或称功能抽象、代码抽象)。其中,数据抽象描述称功能抽象、代码抽象)。其中,数据抽象描述某类对象共有的属性或状态,行为抽象描述某类某类对象共有的属性或状态,行为抽象描述某类对象的共有的行为或功能特征。将这两方面抽象对象的共有的行为或功能特征。将这两方面抽象有机地结合,就形成了面向对象程序设计中的有机地结合,就形成了面向对象程序设计中的“对象对象”。还可以继续抽象:把众多相似的。还可以继续抽象:把众多相似的“对象对象”聚集起来,进一步抽象后就形成了聚集起来,进一步抽象后就形成了“类类”。第第1章章 面向对象程序设计概论面向对象程序设计概

12、论1.2.1 抽象抽象数据抽象:数据抽象:float length,width,Area;float length,width,Area;行为抽象:行为抽象:SetData(float L,float W);SetData(float L,float W);CompueteArea();CompueteArea();OutputArea();OutputArea();分析程序清单分析程序清单Li1_2Li1_2:如果不是计算矩形的如果不是计算矩形的面积,关注的特征可面积,关注的特征可能是颜色、大小等。能是颜色、大小等。由此可见,对于同一由此可见,对于同一个研究对象,由于所个研究对象,由于所研究

13、问题的侧重点不研究问题的侧重点不同,就可能产生不同同,就可能产生不同的抽象结果。的抽象结果。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.2 封装封装 在日常生活中,我们往往只想知道某件物品在日常生活中,我们往往只想知道某件物品的功能,而不关心它是怎么工作的。的功能,而不关心它是怎么工作的。对于程序设计亦是如此,当人们面对某段程对于程序设计亦是如此,当人们面对某段程序时,只关心它的执行结果,而不关心实现过程序时,只关心它的执行结果,而不关心实现过程以及过程中所用到的数据。封装恰好满足了这一以及过程中所用到的数据。封装恰好满足了这一需求。需求。第第1章章 面向对象程

14、序设计概论面向对象程序设计概论1.2.2 封装封装 面向对象方法中的封装:就是将抽象出来的面向对象方法中的封装:就是将抽象出来的对象的属性和行为结合成一个独立的单位,并尽对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。可能隐蔽对象的内部细节。封装有两个含义:一是把对象的全部属性和封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。行为结合在一起,形成一个不可分割的独立单位。对象的私有属性只能由这个对象的行为来读取和对象的私有属性只能由这个对象的行为来读取和修改;二是尽可能隐蔽对象的内部细节,对外形修改;二是尽可能隐蔽对象的内部细节,对外形成一道屏

15、障,通过公有行为充当外部接口。成一道屏障,通过公有行为充当外部接口。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.2 封装封装 例如程序段例如程序段Li1_2Li1_2中的类中的类RectangleAreaRectangleArea就是就是在抽象的基础上,将矩形的数据和功能结合起来在抽象的基础上,将矩形的数据和功能结合起来而构成的封装体。而构成的封装体。声明的私有成员声明的私有成员lengthlength、widthwidth和和AreaArea外部无外部无法直接访问,外界可通过公有行为法直接访问,外界可通过公有行为SetData()SetData()、CompueteArea(

16、)CompueteArea()和和OutputArea()OutputArea()与类与类RectangleAreaRectangleArea发生联系。发生联系。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.3 消息消息 消息:是面向对象程序设计用来描述对象之消息:是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。个对象实施某种操作的一个请求。前面所提到的前面所提到的“接口接口”规定了能向某一对象发规定了能向某一对象发出什么请求。也就是说,类对每个可能的请求都出什么请求

17、。也就是说,类对每个可能的请求都定义了一个相关的函数,当向对象发出请求时,定义了一个相关的函数,当向对象发出请求时,就调用这个函数。这个过程通常概括为向对象就调用这个函数。这个过程通常概括为向对象“发发送消息送消息”(提出请求提出请求),对象根据这个消息决定做什,对象根据这个消息决定做什么么(执行函数代码执行函数代码)。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.3 消息消息例如,外界与例如,外界与RectangleAreaRectangleArea类进行通信,可以通类进行通信,可以通过下面的过下面的C+C+语句来描述:语句来描述:/创建一个创建一个RectangleRecta

18、ngle对象对象 RectangleArea Rectangle;/通过对象调用通过对象调用CompueterArea()CompueterArea()函数函数 Rectangle.CompueterArea();返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.4 继承继承 在客观世界中,存在着一般和特殊的关系,在客观世界中,存在着一般和特殊的关系,特殊具有一般的特性,同时又有自己的新特性。特殊具有一般的特性,同时又有自己的新特性。运用抽象的原则就是舍弃对象的特殊性,提运用抽象的原则就是舍弃对象的特殊性,提取其一般性,从而得到适合一个对象集的类。如取其一般性,从而得

19、到适合一个对象集的类。如果在这个类的基础上,再考虑抽象过程中被舍弃果在这个类的基础上,再考虑抽象过程中被舍弃的一部分对象的特性,则可形成一个新的类,这的一部分对象的特性,则可形成一个新的类,这个类具有前一个类的全部特征,又有自己的新特个类具有前一个类的全部特征,又有自己的新特征,形成一种层次结构,即继承结构。征,形成一种层次结构,即继承结构。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.4 继承继承 面向对象程序设计中利用继承机制将这种面向对象程序设计中利用继承机制将这种关系模型化。继承就是指特殊类的对象拥有其关系模型化。继承就是指特殊类的对象拥有其一般类的属性和行为。一般类的属

20、性和行为。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.4 继承继承 在软件开发过程中,继承进一步实现了软在软件开发过程中,继承进一步实现了软件模块的可重用性。继承意味着件模块的可重用性。继承意味着“自动地拥有自动地拥有”,即特殊类中不必重新定义已在一般类中定义过即特殊类中不必重新定义已在一般类中定义过的属性和行为,而是自动地、隐含地拥有其一的属性和行为,而是自动地、隐含地拥有其一般类的属性与行为。当这个特殊类又被它更下般类的属性与行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特殊类继承下去。不属

21、性和行为又被下一层的特殊类继承下去。不仅如此,如果将开发好的类作为构件放到构件仅如此,如果将开发好的类作为构件放到构件库中,在开发新系统时便可直接使用或继承使库中,在开发新系统时便可直接使用或继承使用。用。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.5 多态多态 面向对象的通信机制是消息,一个消息可以面向对象的通信机制是消息,一个消息可以产生不同的响应效果,这种现象叫做多态。即一产生不同的响应效果,这种现象叫做多态。即一个名字,多种语义;或相同界面,多种实现。个名字,多种语义;或相同界面,多种实现。第第1章章 面向对象程序设计概论面向对象程序设计概论1.2.5

22、多态多态 例如,如果发送消息例如,如果发送消息“双击双击”,不同的对象,不同的对象就会有不同的响应。比如,就会有不同的响应。比如,“文件夹文件夹”对象收到对象收到双击消息后,会打开该文件夹,而双击消息后,会打开该文件夹,而“音乐文件音乐文件”对象收到双击消息后,会播放该音乐。显然,对象收到双击消息后,会播放该音乐。显然,打开文件夹和播放音乐需要不同的函数体。但打开文件夹和播放音乐需要不同的函数体。但是,它们可以被同一条消息是,它们可以被同一条消息“双击双击”所引发。这所引发。这就是多态。就是多态。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.3 面向对象程序设计语言面

23、向对象程序设计语言1.3.1 混合型的面向对象程序设计语言混合型的面向对象程序设计语言C+1.3.2 纯面向对象程序设计语言纯面向对象程序设计语言Java返回首页返回首页第第1章章 面向对象程序设计概论面向对象程序设计概论1.3.1混合型的面向对象程序设计语言混合型的面向对象程序设计语言C+混合型程序设计语言兼有同时支持面向过混合型程序设计语言兼有同时支持面向过程的程序设计和支持面向对象的程序设计的特程的程序设计和支持面向对象的程序设计的特点,点,C+C+语言是这类语言的典型代表。语言是这类语言的典型代表。第第1章章 面向对象程序设计概论面向对象程序设计概论1.3.1混合型的面向对象程序设计语

24、言混合型的面向对象程序设计语言C+C+C+语言具有语言具有4 4个方面的优点:个方面的优点:u 降低程序开发和维护的成本。降低程序开发和维护的成本。u 与与C C兼容,但比用兼容,但比用C C语言编写的程序更有效率。语言编写的程序更有效率。u 允许程序员更自由地使用各种库。允许程序员更自由地使用各种库。u C+C+的异常处理机制能够保证在运行期间检查到的异常处理机制能够保证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度错误,并转至相应的处理程序,减少了代码的长度和复杂度。和复杂度。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.3.2 纯面向对象程序设计语

25、言纯面向对象程序设计语言Java Java Java是一种具有是一种具有“简单、面向对象的、分布简单、面向对象的、分布式、解释型、健壮、安全、与体系结构无关、式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行可移植、高性能、多线程和动态执行”等特性的等特性的语言。其次,它最大限度地利用了网络,语言。其次,它最大限度地利用了网络,JavaJava的应用程序的应用程序(Applet)(Applet)可在网络上传输,可以说可在网络上传输,可以说是网络世界的通用语言;另外,是网络世界的通用语言;另外,JavaJava还提供了还提供了丰富的类库,使程序设计者可以方便地建立自丰富的类

26、库,使程序设计者可以方便地建立自己的系统。因此己的系统。因此JavaJava具有强大的图形、图像、具有强大的图形、图像、动画、音频、视频、多线程及网络交互能力,动画、音频、视频、多线程及网络交互能力,使其在设计交互式、多媒体网页和网络应用程使其在设计交互式、多媒体网页和网络应用程序方面大显身手。序方面大显身手。Java是C+的简化和改进,因而C+程序员可以很快掌握Java编程技术。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.4 C+对面向对象程序设计方法的支持对面向对象程序设计方法的支持 C+C+作为一种面向对象程序设计语言,支持面作为一种面向对象程序设计语言,支持

27、面向对象技术的抽象性、继承性、封装性和多态性向对象技术的抽象性、继承性、封装性和多态性等特性。等特性。返回首页返回首页第第1章章 面向对象程序设计概论面向对象程序设计概论1.4 C+对面向对象程序设计方法的支持对面向对象程序设计方法的支持1支持抽象性支持抽象性 C+C+把问题域中的事物抽象成对象把问题域中的事物抽象成对象(Object)(Object),用数据成员描述该对象的静态特征用数据成员描述该对象的静态特征(属性属性),用成,用成员函数来刻画该对象的动态特征员函数来刻画该对象的动态特征(行为行为)。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.4 C+对面向对象

28、程序设计方法的支持对面向对象程序设计方法的支持 2支持继承性支持继承性 C+C+语言允许单继承和多继承。继承是面向对语言允许单继承和多继承。继承是面向对象语言的重要特性。象语言的重要特性。C+C+允许从一个或多个已经定允许从一个或多个已经定义的类中派生出新的类并继承其数据和操作,同义的类中派生出新的类并继承其数据和操作,同时在新类中可以重新定义或增加新的数据和操作,时在新类中可以重新定义或增加新的数据和操作,从而建立起类的层次结构。被继承的类称为基类从而建立起类的层次结构。被继承的类称为基类或父类,派生的新类称为派生类或子类。或父类,派生的新类称为派生类或子类。返回本节返回本节第第1章章 面向

29、对象程序设计概论面向对象程序设计概论1.4 C+对面向对象程序设计方法的支持对面向对象程序设计方法的支持3支持封装性支持封装性 在在C+C+语言中,类是支持数据封装的工具,对语言中,类是支持数据封装的工具,对象是数据封装的实现。象是数据封装的实现。C+C+将数据和相关操作封装将数据和相关操作封装在类中,同时通过访问权限来控制对内部数据的在类中,同时通过访问权限来控制对内部数据的访问。访问。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.4 C+对面向对象程序设计方法的支持对面向对象程序设计方法的支持4支持多态性支持多态性 C+C+多态分为编译时多态和运行时多态。对编多态

30、分为编译时多态和运行时多态。对编译时多态的支持是通过函数重载和运算符重载实译时多态的支持是通过函数重载和运算符重载实现的;对运行时多态的支持是通过继承和虚函数现的;对运行时多态的支持是通过继承和虚函数来实现的。来实现的。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论1.5 C+程序的实现程序的实现 返回首页返回首页1.5.1 编辑编辑C+源程序源程序1.5.2 编译和连接源程序编译和连接源程序1.5.3 运行源程序运行源程序 第第1章章 面向对象程序设计概论面向对象程序设计概论第第2章章 从从C到到C+2.1 C+C+程序基本组成程序基本组成2.2 简单的输入简单的输入/

31、输出输出2.3 指针与引用指针与引用2.4 函数函数2.5 newnew和和deletedelete运算符运算符2.6 其他若干重要的其他若干重要的C+特性特性2.7 应用实例应用实例第第1章章 面向对象程序设计概论面向对象程序设计概论2.1 C+程序基本组成程序基本组成返回首页返回首页2.1.1 C+程序基本结构程序基本结构2.1.2 C+程序基本组成程序基本组成第第1章章 面向对象程序设计概论面向对象程序设计概论2.1.1 C+程序基本结构程序基本结构 一般情况下,用一般情况下,用C+C+语言编写的程序是由函数语言编写的程序是由函数加上类组成的。加上类组成的。两种退化情形两种退化情形:u程

32、序中仅有类而没有函数程序中仅有类而没有函数(包括没有主函数包括没有主函数)。通常是用来构造通常是用来构造C+C+程序库,供编程序时重用。程序库,供编程序时重用。u另一种退化情形是程序中仅有函数而没有类。另一种退化情形是程序中仅有函数而没有类。除主函数外,还可能有一些游离的函数,这些除主函数外,还可能有一些游离的函数,这些游离的函数不属于任何类。游离的函数不属于任何类。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论2.1.2 C+程序基本组成程序基本组成【例【例2.12.1】一个最简单的】一个最简单的C+C+程序。程序。第第1章章 面向对象程序设计概论面向对象程序设计概论2

33、.1.2 C+程序基本组成程序基本组成分析程序分析程序Li1_1.cpp:1.文件包含命令(文件包含命令(#include指令)指令)文件包含命令,即文件包含命令,即#include指令,其作用是指令,其作用是将某一个源文件的代码并入当前源程序。其形式将某一个源文件的代码并入当前源程序。其形式有两种:有两种:#include 一般用于一般用于C+提供的库函数。提供的库函数。C+编译程序编译程序按标准方式搜索,即系统到存放按标准方式搜索,即系统到存放C+库函数头文库函数头文件的件的include子目录中寻找要包含的文件。子目录中寻找要包含的文件。第第1章章 面向对象程序设计概论面向对象程序设计概

34、论2.1.2 C+程序基本组成程序基本组成#include“文件名文件名”这种形式一般用于程序员自己开发的模块。这种形式一般用于程序员自己开发的模块。C+编译程序首先在当前工作目录中搜索,若没编译程序首先在当前工作目录中搜索,若没有,再按标准方式搜索。有,再按标准方式搜索。第第1章章 面向对象程序设计概论面向对象程序设计概论2.1.2 C+程序基本组成程序基本组成 程序程序Li2_1.cppLi2_1.cpp中的第中的第1 1行代码行代码#include#include 是编译预处理中的文件包含命令,它的作用是是编译预处理中的文件包含命令,它的作用是在编译之前将文件在编译之前将文件iostre

35、amiostream的内容增加到源程的内容增加到源程序序Li2_1.cppLi2_1.cpp该命令所在的地方。文件该命令所在的地方。文件iostreamiostream设置了设置了C+C+的的I/OI/O相关环境,定义了输入输出相关环境,定义了输入输出流类对象流类对象coutcout与与cincin等,程序要在屏幕上输入等,程序要在屏幕上输入/输出时,需要包含该文件。输出时,需要包含该文件。第第1章章 面向对象程序设计概论面向对象程序设计概论C+C+编译系统提供的头文件有两类:编译系统提供的头文件有两类:一类是标准的一类是标准的C+C+库头文件,这些头文件库头文件,这些头文件不带不带“.h”.

36、h”;这种写法也适合标准的;这种写法也适合标准的C C库头文件,库头文件,但是必须使用前缀字符但是必须使用前缀字符“c”c”。例如:。例如:#include/#include/相当于相当于#include#include 另一类是非准的另一类是非准的C+C+库头文件,这些头文件库头文件,这些头文件带带“.h”.h”。在连接时,编译系统会根据头文件名。在连接时,编译系统会根据头文件名自动确定连接哪一个库。自动确定连接哪一个库。2.1.2 C+程序基本组成程序基本组成使用标准使用标准C+C+库时,在所库时,在所有的有的includeinclude指令之后,指令之后,需要加入语句:需要加入语句:us

37、ing namespace stdusing namespace std;第第1章章 面向对象程序设计概论面向对象程序设计概论2针对名字空间的指令针对名字空间的指令 一个软件往往由多个模块组合而成,其中一个软件往往由多个模块组合而成,其中包括由不同的程序员开发的组件及类库提供的包括由不同的程序员开发的组件及类库提供的组件,这样不同模块间在对标识符命名时就有组件,这样不同模块间在对标识符命名时就有可能发生命名冲突,简单地说,就是在不同的可能发生命名冲突,简单地说,就是在不同的模块中使用相同名字表示不同的事物,这样当模块中使用相同名字表示不同的事物,这样当然会引起程序出错。然会引起程序出错。C+C

38、+提供名字空间来防止命提供名字空间来防止命名的冲突。名的冲突。2.1.2 C+程序基本组成程序基本组成第第1章章 面向对象程序设计概论面向对象程序设计概论2.1.2 C+程序基本组成程序基本组成 程序程序Li2_1.cppLi2_1.cpp中的语句中的语句 using namespace std;using namespace std;是针对名字空间的指令。告诉编译程序是针对名字空间的指令。告诉编译程序此程序中所有的标识符都在此程序中所有的标识符都在stdstd名字空间名字空间中,标识符都可以直接使用而不会发生中,标识符都可以直接使用而不会发生命名的冲突。命名的冲突。第第1章章 面向对象程序设

39、计概论面向对象程序设计概论2.1.2 C+程序基本组成程序基本组成代码段代码段int main()int main()couthello,students!endl;couthello,students!cin变量变量11变量变量22变量变量n n;其中,其中,cincin是预定义的标准输入流对象,是预定义的标准输入流对象,是输是输入操作符,也称提取运算符。入操作符,也称提取运算符。第第1章章 面向对象程序设计概论面向对象程序设计概论2.2.2 屏幕输出屏幕输出 在在C+C+中输出操作可理解为将数据插入到输中输出操作可理解为将数据插入到输出流对象中,故称为插入操作。屏幕输出是标准出流对象中,故

40、称为插入操作。屏幕输出是标准输出操作,用来将表达式的结果输出到显示器的输出操作,用来将表达式的结果输出到显示器的屏幕上。其一般形式可表示为:屏幕上。其一般形式可表示为:coutcout表达式表达式11表达式表达式22表达式表达式n n;其中,其中,coutcout是预定义的标准输出流对象,是预定义的标准输出流对象,是输是输出操作符,也称插入运算符。用它可以输出各种出操作符,也称插入运算符。用它可以输出各种不同类型的数据。在输出时若要换行,可使用控不同类型的数据。在输出时若要换行,可使用控制符制符endlendl,第第1章章 面向对象程序设计概论面向对象程序设计概论2.2.2 屏幕输出屏幕输出【

41、例【例2.22.2】分析下列程序的输出结果。学会使用】分析下列程序的输出结果。学会使用输入、输出方法。输入、输出方法。第第1章章 面向对象程序设计概论面向对象程序设计概论2.2.2 屏幕输出屏幕输出返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论2.3 指针与引用指针与引用 返回首页返回首页2.3.1 指针指针2.3.2 引用引用第第1章章 面向对象程序设计概论面向对象程序设计概论2.3.1 指针指针 指针是一种特殊的对象,指针的类型是它所指指针是一种特殊的对象,指针的类型是它所指向对象的类型,它的值是它所指向对象的地址值。向对象的类型,它的值是它所指向对象的地址值。1.指

42、针的值和类型指针的值和类型 指针具有一般对象的三个要素:名字、类型和指针具有一般对象的三个要素:名字、类型和值。指针的命名与一般对象的命名是相同的,它与值。指针的命名与一般对象的命名是相同的,它与一般对象的区别在于类型和值上。一般对象的区别在于类型和值上。第第1章章 面向对象程序设计概论面向对象程序设计概论2.3.1 指针指针2.指针的定义格式指针的定义格式 使用一个指针之前要先定义。具体格式如下:使用一个指针之前要先定义。具体格式如下:类型类型 *指针名指针名1 1,*指针名指针名2 2,;其中,类型为指针的基类型,可以是系统提供其中,类型为指针的基类型,可以是系统提供的基本类型,也可以是用

43、户自定义类型。的基本类型,也可以是用户自定义类型。第第1章章 面向对象程序设计概论面向对象程序设计概论2.3.1 指针指针例如:例如:int*p1;/定义一个指向定义一个指向intint型的指针型的指针p1 p1 char*p2;/定义一个指向定义一个指向charchar型的指针型的指针p2p2float*p3;/定义一个指向定义一个指向floatfloat型的指针型的指针p3p3第第1章章 面向对象程序设计概论面向对象程序设计概论2.3.1 指针指针3.指针的运算符指针的运算符 专门为指针准备的两个运算符:专门为指针准备的两个运算符:&:表示取其对象的地址值:表示取其对象的地址值 *:表示取

44、其所指向的对象值表示取其所指向的对象值 上面定义的指针上面定义的指针p1p1,p2p2,p3p3只是指向某种类只是指向某种类型,必须给指针赋值后才具体地指向某个对象。型,必须给指针赋值后才具体地指向某个对象。第第1章章 面向对象程序设计概论面向对象程序设计概论 2.3.1 指针指针如执行语句如执行语句int p;int*p1;p1=&p;/&/&是一个取地址的运算符是一个取地址的运算符后后p1p1才指向具体的才指向具体的p p。第第1章章 面向对象程序设计概论面向对象程序设计概论2.3.1 指针指针【例【例2.3】分析程序结果,体会指针的值、地址与】分析程序结果,体会指针的值、地址与指针所指向

45、的对象的值、地址的含义。指针所指向的对象的值、地址的含义。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论2.3.2 引用引用 所谓引用,就是给对象起一个别名,使用该所谓引用,就是给对象起一个别名,使用该别名可以存取该对象。换句话说,是使新对象和别名可以存取该对象。换句话说,是使新对象和原对象共用一个地址。原对象共用一个地址。1.引用的定义格式引用的定义格式&=例如:例如:int a;int&ta=a;其中,其中,ta是一个引用名,即是一个引用名,即ta是对象是对象a的别名,的别名,ta和和a都是都是int型的。型的。第第1章章 面向对象程序设计概论面向对象程序设计概论2.

46、3.2 引用引用【例【例2.4】分析下列程序的输出结果,并分析引用】分析下列程序的输出结果,并分析引用的说明和用法。的说明和用法。第第1章章 面向对象程序设计概论面向对象程序设计概论返回本节返回本节2.3.2 引用引用 在在C+程序中,引用的主要用途是用作函数程序中,引用的主要用途是用作函数参数和函数的返回值。参数和函数的返回值。使用引用时要注意以下几点:使用引用时要注意以下几点:u建立引用时,必须要用某个对象对它初始化建立引用时,必须要用某个对象对它初始化u引用不是变量,它本身没有地址值引用不是变量,它本身没有地址值u引用在初始化被绑定到某个对象上后,将只引用在初始化被绑定到某个对象上后,将

47、只能永远绑定到这个对象。能永远绑定到这个对象。u没有空引用。下面语句是错误的。没有空引用。下面语句是错误的。int&ri=NULL;第第1章章 面向对象程序设计概论面向对象程序设计概论2.4 函数函数 返回首页返回首页2.4.1 函数的定义与调用函数的定义与调用2.4.2 函数原型与带默认参数的函数函数原型与带默认参数的函数2.4.3 函数的参数传递函数的参数传递2.4.4 内联函数与重载函数内联函数与重载函数2.4.5 标准库函数标准库函数第第1章章 面向对象程序设计概论面向对象程序设计概论2.4.1 函数的定义与调用函数的定义与调用 函数是面向对象程序设计中对功能的抽象,函数是面向对象程序

48、设计中对功能的抽象,它封装或隐藏了一些程序的代码和数据。函数需它封装或隐藏了一些程序的代码和数据。函数需要先定义,后使用。要先定义,后使用。1.函数的定义函数的定义 C+C+有两种函数:标准库函数和用户自定义的有两种函数:标准库函数和用户自定义的函数。自定义函数的形式与主函数的形式相似,函数。自定义函数的形式与主函数的形式相似,一般为:一般为:返回值类型函数名(形式参数表)返回值类型函数名(形式参数表)函数体函数体 第第1章章 面向对象程序设计概论面向对象程序设计概论2.4.1 函数的定义与调用函数的定义与调用2.函数调用函数调用 函数的使用是通过函数调用实现的。函数调函数的使用是通过函数调用

49、实现的。函数调用指定了被调用函数的名字和调用函数所需的信用指定了被调用函数的名字和调用函数所需的信息息(参数参数)。调用函数所需提供的参数实际参数,。调用函数所需提供的参数实际参数,简称实参。函数调用的一般形式为:简称实参。函数调用的一般形式为:函数名(实参表)函数名(实参表)其中,实参表中的各参数用逗号分隔,实参其中,实参表中的各参数用逗号分隔,实参可以是常量、变量或表达式,与被调用函数形参可以是常量、变量或表达式,与被调用函数形参的个数和类型必须相符。的个数和类型必须相符。第第1章章 面向对象程序设计概论面向对象程序设计概论2.4.1 函数的定义与调用函数的定义与调用【例【例2.5】通过调

50、用两数和的函数,求】通过调用两数和的函数,求3 3个数的和。个数的和。返回本节返回本节第第1章章 面向对象程序设计概论面向对象程序设计概论2.4.2 函数原型与带默认参数的函数函数原型与带默认参数的函数1.函数原型函数原型 函数原型体现了函数的声明风格。它标识一函数原型体现了函数的声明风格。它标识一个函数的返回类型,同时也标识该函数参数的个个函数的返回类型,同时也标识该函数参数的个数与类型,这将作为编译程序进行类型检查及函数与类型,这将作为编译程序进行类型检查及函数匹配的依据。数匹配的依据。函数原型由函数首部加上分号组成。例如:函数原型由函数首部加上分号组成。例如:int sum(int x,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(面向对象程序设计教程(C++语言描述课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|