网站大量收购独家精品文档,联系QQ:2885784924

第05章函数,函数及运算符及重载.ppt

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

第五章 函数,函数与运算符的重载 * 函数在C++程序设计中的意义体现在四个方面: (1)从历史上说,函数的思想来源于子程序,把程序中反复出现的相同或相近的程序改写成子程序,可以大大缩短程序的长度。函数实际上是参数化的子程序。 (2)从结构化程序设计(SP)的观点来看,更重要的是通过函数设计,可以把整个程序要完成的整体的复杂的计算任务,分解为一个个较小的,相对简单的子任务。这种模块化的程序易设计,易阅读,易调试,易维护,较少出错。 (3)从运算的角度说,函数就是C++语言提供的由用户定义的运算。运算符是系统提供的运算,而函数是由用户自己定义的运算。 (4)作为面向对象程序设计(OOP)语言的C++,以类为核心,类由数据和方法组成,方法就是对数据的运算和处理,亦即类的函数成员。故函数设计同样是OOP 的重要组成部分。 5.1 三次方程求根程序的设计 5.2 函数的说明与使用 5.2.1 函数说明 C++程序允许两种函数说明语句的形式,我们把它们分别称为函数原型(或函数声明)和函数定义。 1.函数原型 函数原型用来指出函数的名称、类型和参数,其格式为: [属性说明]类型函数名(参数表); 属性说明:可缺省,一般可以是下面的关键字之一:inline,static,virtual,friend 等。 inline 表示该函数为内联函数; static 表示该函数为静态(内部)函数; virtual 表示该函数为虚函数; friend 表示该函数为某类(class)的友元函数。 函数原型一般在两种情形下被使用: ①在程序中某函数的调用语句出现在该函数的定义之前,这时必须在调用语句之前列出函数原型。 ②为了类定义的简明清晰,一般把较大的函数成员定义移到类说明之外,这时应把该函数的原型列于类说明之中。 2.函数定义 函数定义与函数原型的主要区别是它还包括函数体,其格式为: [〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉)〈函数体〉 属性说明,返回类型,函数名与函数原型一致,参数表中不可省略参数名。 函数体:由{和}括起来的复合语句即程序块。 5.2.2 函数调用 函数调用是已定义函数的一次实际运行,与某类型的一个变量, 某类的一个对象类似,函数调用也是函数定义的一个“实例”。 函数调用的两要素是函数名和实参表。具体的调用实施过程如下: (1) 根据调用语句中的函数名在整个程序中搜索同名函数定义; (2) 对实参数的参数个数,类型,顺序进行核对,判定是否与函数定义中的形参表对应一致, (3) 根据参数的类型(值参数或引用参数)进行值参数的值传递或引用参数的换名; (4) 运行函数体代码; (5) 返回调用点,并返回所要求的函数值。 5.2.3 函数的返回 函数的返回完成两项任务: 把运行控制从函数体返回到函数调用点。 根据返回值要求,返回所需要的数据值。 函数的返回值有下面几种情形: 1. 返回void 类型 如果函数无值返回,应说明为void 类型。 2.返回数值类型 最常见的函数是返回一个数值的函数。 3.返回引用类型 值返回方式是C 和Pascal 语言中唯一的返回方式,C++语言提供的引用返回概念是其特有的一种很强的功能,当函数定义中把该函数说明为某类型的引用类型时,该函数调用后返回的不单是值,而是包含返回值的变量(或对象)。 5.2.4 函数的参数 C++语言允许函数无参、有一个或多个参数,而且还支持不定个数参数的函数。 无参函数:其函数说明为下列形式: void print(void); int getx(); 用void 或空表示无参。 (2) 一个或多个参数: (3) 不定个数参数: 有些应用问题中参数个数是变化的。处理参数个数不定的情形,可有不同的途径。 如:void sort(int n,float * a); 这个函数可对n 长的浮点数组进行排序,n 是变化的;由于a 是数组的首地址,因此这个函数实际上是可以进行对任意多个浮点数排序的处理。 C++语言有的版本还提供一些库函数,支持处理形如:void abc(int i,… );的不定参数函数。 C++语言,允许参数表中包含无名参数,主要是为了区分函数,例如: int f(int a,int b){return a+b*b;} int f(int a,int b,int){return a*a+b;} 两个不同的函数同名,但由于第二个函数包含一无名参数,使得在调用时能够被区分,f(x,y)是第一个函数的调用,f(x,y,0)是第二个函数的调用。 C++程序还允许为函数定义可缺省参数(即参数有默认值。当对应的实参缺省时,该形参将使用默认

文档评论(0)

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

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

1亿VIP精品文档

相关文档