第五章成员函数优秀PPT.ppt
《第五章成员函数优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第五章成员函数优秀PPT.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章成员函数第一页,本课件共有84页5.1 成员函数的概念 为了实现对象的行为,我们把一些相关的语句为了实现对象的行为,我们把一些相关的语句组织在一起,并给它们注明相应的名称,形成一组织在一起,并给它们注明相应的名称,形成一些相对独立而且便于管理和阅读的小块程序,每个小程序块描述了一个完整的行为,这种形式的个小程序块描述了一个完整的行为,这种形式的组合就构成了成员函数。组合就构成了成员函数。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第二页,本课件共有84页5.2 算法描述 5.2.1 算法的概念 一个完整的对象应该包括两个方面的内容,即对数据的
2、描述(对象属性)和对操作的描述(对象行为)。对操作的描述也就是算法,是设计和实现对象行为的灵魂。一个完整的算法应该具有以下5个特性:有穷性、确定性、有效性、输入性和输出性。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第三页,本课件共有84页5.2.2 算法的表示 为了表示一个算法,可以采用多种形式。最常见的几种方法有自然语言表示法、流程图表示法、伪代码表示法和计算机语言表示法。自然语言表示法:自然语言表示法就是用我们日常生活中的语言来表示算法的实现过程,对采用何种语言没有限制。但是采用自然语言表示往往不太严格,容易造成歧义。另外,用这种方法描述包含
3、分支和循环的算法不太方便。因此,自然语言表示法很少用来描述复杂的算法。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第四页,本课件共有84页面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版图图5.1 5.1 一般流程图表示算法一般流程图表示算法 流程图表示法:流程图就是用一些图框表示各种操作。用流程图来表示算法最大的优点就是直观形象,便于理解,并且实用性强,能够方便的表示包含分支和循环的结构,避免了含分支和循环的结构,避免了用自然语言表示算法的不足。用自然语言表示算法的不足。第五页,本课件共有84页面向对象程
4、序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版图图5.2 N-S5.2 N-S流程图表示算法流程图表示算法第六页,本课件共有84页伪代码表示法:伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。从结构上看,伪代码表示法类似于最终的计算机语言,每一行就表示一个基本的操作。它不用图形符号,因此书写方便、格式紧凑,也易于理解,便于向最终的程序过渡。伪代码表示法书写格式比较自由,容易直观表达出设计者的思想。同时,书写的算法也容易修改,很容易写出结构化的算法。因此,这种方法一般被专业的软件开发人员采用,特别是在详细设计中采用伪代码表示法,可以使以后的编码阶段
5、变得简单。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第七页,本课件共有84页计算机语言表示法:一个算法要拿到计算机上去运行,最终还是得采用计算机语言表示。计算机是无法识别流程图和伪代码的。只有严格按照计算机语言语法编写的程序才能被计算机执行。目前使用的计算机语言多种多样,本书所介绍的面向对象的程序设计语言(C+)就是种很好的描述和实现算法的工具。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第八页,本课件共有84页5.3 成员函数的定义与调用 5.3.1 成员函数的定义面向对象程序设计面向对象程序设计面
6、向对象程序设计面向对象程序设计 第二版第二版第二版第二版定义一个成员函数必须具备四个条件:函数必须具有返回值类型,即函数必须有返回值,且该返回函数必须具有返回值类型,即函数必须有返回值,且该返回值的类型应该与函数返回值的类型一致值的类型应该与函数返回值的类型一致 函数必须具有一个名字,即函数名。函数必须具有一个形参(形式参数)列表,C+规定,形参列表以左括号“(”开始,到右括号“)”结束,且各个形参之间用“,”分开。函数要完成一定的功能,必须具有一个函数体,其中,前面的三个条件构成了函数的原型。第九页,本课件共有84页说明一个函数原型的一般形式有两种:函数返回值类型函数返回值类型 函数名函数名
7、(参数类型参数类型1 1 参数名参数名1,1,参数类型参数类型2 2 参参数名数名2,)2,);函数返回值类型 函数名(参数类型1,参数类型2,);以上两种方法均可以使用,但是为了增加程序的可以上两种方法均可以使用,但是为了增加程序的可读性建议使用第一种方法。读性建议使用第一种方法。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第十页,本课件共有84页成员函数的定义:成员函数的定义:(1 1)对于代码较少的成员函数的定义,可以直接在类中进行。)对于代码较少的成员函数的定义,可以直接在类中进行。)对于代码较少的成员函数的定义,可以直接在类中进行。)对于
8、代码较少的成员函数的定义,可以直接在类中进行。class Circleclass Circle protected protected:int Radiusint Radius;publicpublic:fioat circle_area(fioat pi)return pi*Radius*Radius;fioat circle_area(fioat pi)return pi*Radius*Radius;(2 2)对于代码较多的成员函数的定义,通常只在类中进行原型说明,在类外对成员函数进)对于代码较多的成员函数的定义,通常只在类中进行原型说明,在类外对成员函数进)对于代码较多的成员函数的定义,
9、通常只在类中进行原型说明,在类外对成员函数进)对于代码较多的成员函数的定义,通常只在类中进行原型说明,在类外对成员函数进行定义。行定义。行定义。行定义。class Circleclass Circle protected protected:int Radiusint Radius;publicpublic:fioat circle_area(fioat pi)fioat circle_area(fioat pi);;float Circle float Circle:circle_area(float pi)circle_area(float pi)return pi*Radius*Radi
10、us;return pi*Radius*Radius;请注意,这时的函数名应该包含:请注意,这时的函数名应该包含:类名类名(Circle)+(Circle)+作用域分辨符作用域分辨符(:)+)+原函数原函数(circle_area)(circle_area)第十一页,本课件共有84页5.3.2 成员函数的调用一般形式有两种:对象名对象名.函数名函数名(实参实参1,1,实参实参2,);2,);对象指针对象指针函数名函数名(实参实参1,1,实参实参2,);2,);例如:void main()void main()cout “The area of circle=”cout “The area of
11、 circle=”Z)将!右边的结果(逻辑值)取非R按位取反运算符 A将A值按位取反R取地址与取值运算符&pX=&Y提取变量Y的地址,然后赋给指针变量pXR*X=*pY提取指针变量pY所指的地址单元的内容,然后赋给变量X类型转换运算符(类型)X=(int)Y将Y转换为整型,然后赋给XR动态内存分配运算符NewPa=new int4;创建一个整型数组,其中含有4个元素,并将首地址给PaRdeletedelete Pa;delete Pb;数组必须用delete 进行删除普通的堆对象可用delete删除面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第二十
12、九页,本课件共有84页4-*X*Y将两数相乘L/X/Y将两数相除%X%Y将两数相除取其余数5+X+Y将两数相加X Y将两数相减6移位运算符A A 2将A值向右平移2位7!=X X Y判断X是否大于Y=X=X=Y判断X是否大于等于Y8=X=Y判断X是否等于YX!=Y判断X是否不等于Y9位运算符&A&B将A和B的值按位相与L10A B将A和B的值按位相异或11|A|B将A和B的值按位相或12逻辑运算符&XZ将&两边的结果(逻辑值)相与L13|XZ将|两边的结果(逻辑值)相或14条件运算符?:Z=XY?E1:E2;如果XY为真,Z等于E1的值,否则等于E2的值R面向对象程序设计面向对象程序设计面向对
13、象程序设计面向对象程序设计 第二版第二版第二版第二版第三十页,本课件共有84页15赋值运算符=X=Y将Y的值赋给XR+=X+=Y将X的值加Y后,再赋给X,等价于 X=X+Y-=X-=Y将X的值减Y后,再赋给X,等价于 X=X Y*=X*=Y将X的值乘Y后,再赋给X,等价于 X=X*Y/=X/=Y将X的值除Y后,再赋给X,等价于 X=X/Y%=X%=Y将X的值对Y取余后,再赋给X,等价于 X=X%Y&=X&=Y将X的值与Y按位相与后,再赋给X,等价于 X=X&Y=X=Y将X的值与Y按位相异或后,再赋给X,等价于 X=X Y|=X|=Y将X的值与Y按位相或后,再赋给X,等价于 X=X|Y=X=Y将
14、X的值左移Y位后,再赋给X,等价于 X=X=X=Y将X的值右移Y位后,再赋给X,等价于 X=X Y16逗号运算符,E1,E2,E3从左到右依次求出表达式E1,E2,E3的值L面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第三十一页,本课件共有84页5.4.2 表达式 所谓表达式是指:所谓表达式是指:用运算符将运算对象(也称操作数)用运算符将运算对象(也称操作数)连接起来的、符合语法规则的式子连接起来的、符合语法规则的式子。根据连接运算对象的连接符(运算符)的不同大体上可以将根据连接运算对象的连接符(运算符)的不同大体上可以将表达式分为以下四种:表达式
15、分为以下四种:算术运算表达式(算术运算表达式的运算结果是数值算术运算表达式(算术运算表达式的运算结果是数值 )逻辑运算表达式(逻辑运算表达式的运算结果是逻辑值逻辑运算表达式(逻辑运算表达式的运算结果是逻辑值 )赋值运算表达式(赋值运算符的结合性是从右向左的赋值运算表达式(赋值运算符的结合性是从右向左的 )逗号运算表达式(逗号运算表达式的值是最后一个表达式逗号运算表达式(逗号运算表达式的值是最后一个表达式的值的值 )面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第三十二页,本课件共有84页注意:注意:当一个表达式中包含多种运算符时,必须考虑运算符的优先
16、级和当一个表达式中包含多种运算符时,必须考虑运算符的优先级和结合性。结合性。可以用()改变运算符的优先级;可以用()改变运算符的优先级;例如例如:int i=1,n=2;int i=1,n=2;n=i+n 1;n=i+n 1;/因为因为“+”“+”高于高于“”“”高于高于“=”“=”,所以先运算,所以先运算i+n i+n 等于等于3 3,/再运算再运算3131得得6 6,最后,最后n=6n=6。用用“()”“()”改变先后次序如下:改变先后次序如下:int i=1,n=2;int i=1,n=2;n=i+(n 1);n=i+(n 1);/因为因为 (n1n1)高于高于“+”“+”高于高于“=”
17、“=”,所以先运算,所以先运算n1 n y?e1:e2;x y?e1:e2;i+;i+;赋值运算符左侧必须是一个可以引用的存储单元(如:变量),决不能是表达式。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第三十四页,本课件共有84页5.4.3 数据类型的转换类型转换就是将一种类型的值转换为另一种类型的值。隐式类型转换隐式类型转换 其转换过程是由系统按照一定的转换规则自动完成的。(1)当char或short型数据与int型数据进行运算时,将char或short型装换成int类型;(2)当两个运算对象数据类型不一致时,在做算术运算前,级别低的自动转换为
18、级别高的数据类型(3)在赋值表达式E1=E2的情况下,赋值运算符右端E2的结果值需转换为E1类型,然后赋值。面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第三十五页,本课件共有84页显式类型转换 显式类型转换的方法有两种。(1)强制转换法 强制转换法的格式为:(类型名)表达式;如:(int)x;在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。(2)函数法 函数法的转换格式为:类型名(表达式);如:int(x);第三十六页,本课件共有84页显示类型转换有时是必需的,如前面提到的void*指针。我们必须将malloc返回的void
19、*指针显示转换为特定的类型 int*p=static_cast(malloc(100);(int)3.1415;/就是取整数部分(int)a%10;/取a的个位数 第三十七页,本课件共有84页 在程序设计过程中,使用以下三种控制结构作为算法的基本单元。事实上,任何一个成员函数的定义都离不开这三种基本结构:5.5.1 5.5.1 顺序结构顺序结构顺序结构是指程序语句按顺序,自上而下依次执行顺序结构是指程序语句按顺序,自上而下依次执行 5.5.2 5.5.2 选择结构(又称分支结构)选择结构(又称分支结构)选择结构是指能根据选择条件,改变程序走向的一种语句 5.5.3 5.5.3 循环结构循环结构
20、 循环结构是指能根据循环条件,重复执行某段程序的一种语句。是代码可重用技术的一种基本形式 5.5 控制结构第三十八页,本课件共有84页5.5.1 顺序结构 顺序结构是指程序语句按顺序,自上而下依次执行。顺序结构是指程序语句按顺序,自上而下依次执行。如,输入三角形的三边长,求三角形面积的函数。如,输入三角形的三边长,求三角形面积的函数。float f_area(float a,float b,float c)float f_area(float a,float b,float c)float s;float s;s=1.0/2 *(a+b+c);s=1.0/2 *(a+b+c);return s
21、qrt(s*(s return sqrt(s*(s a)*(s-b)*(s-c);a)*(s-b)*(s-c);面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第三十九页,本课件共有84页5.5.2 选择结构(又称分支结构)if 和 if elseif是最简单的选择语句,一般格式为:if()我们所要执行的语句多于一条时,C+规定,必须将这些语句用“”和“”括起来。一般格式为:if()n面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第四十页,本课件共有84页if elseif else是用来解决在互相对立的两种
22、条件下,所要分别进行处是用来解决在互相对立的两种条件下,所要分别进行处理的两批语句。理的两批语句。if(if()12nelseelse n+1n+2n+k n+k+1 面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第四十一页,本课件共有84页当分支结构(即选择结构)的分支较多时,当分支结构(即选择结构)的分支较多时,C+C+提供了嵌套式的选提供了嵌套式的选择结构:择结构:if(if()1)12nelse if(else if()2)n+1n+2n+kelseelse n+k+1n+k+2n+k+m n+k+m+1 面向对象程序设计面向对象程序设计面向
23、对象程序设计面向对象程序设计 第二版第二版第二版第二版第四十二页,本课件共有84页 例如,设计一个函数,当输入大于例如,设计一个函数,当输入大于0 0时,输出为时,输出为1 1;当输入小于;当输入小于0 0时,输出为时,输出为-1-1;当输入等于;当输入等于0 0时,输出为时,输出为0 0;(注意本例中判断条件有;(注意本例中判断条件有三种情况)三种情况)int f_s(int x)int f_s(int x)if if(x0 x0)else if(x0)/到此排除了到此排除了x0 x0 x0和和x=0 x=0的情况的情况 x=1;x=1;elseelse/到此排除了到此排除了x0 x0 x0
24、的情况,只剩下的情况,只剩下x=0 x=0的情况的情况 x=0;x=0;return x;return x;注意:判断条件之间存在排除关系的这种情况,一般采用注意:判断条件之间存在排除关系的这种情况,一般采用ifelseifelseifelseifelse这种形式进行处理这种形式进行处理面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 第二版第二版第二版第二版第四十三页,本课件共有84页 switchswitch语句又称开关语句。主要用于根据某个整型数据的语句又称开关语句。主要用于根据某个整型数据的变化,达到多种分支的目的。一般格式为:变化,达到多种分支的目的。一般格式为:sw
25、itchswitch(整型表达式(整型表达式E E)case case 整型表达式整型表达式E1:E1:语句系列语句系列1 1;break;break;/跳过下面的所有语句直接去执行语句跳过下面的所有语句直接去执行语句k+2k+2;case case 整型表达式整型表达式E2:E2:语句系列语句系列2 2;break;break;case case 整型表达式整型表达式Ek:Ek:语句系列语句系列k k;break;break;default:default:语句系列语句系列k+1k+1;/开关语句结束开关语句结束语句语句k+2k+2;面向对象程序设计面向对象程序设计面向对象程序设计面向对象程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 成员 函数 优秀 PPT
限制150内