C高校教第五章函数.ppt
文本预览下载声明
面向对象程序设计(二) 吕俊白 第五章 函数机制 主要内容: 函数的概念; 函数的声明、定义与调用; 函数参数; 递归函数; 函数重载 main函数参数; 指针与函数; 内联函数 重点: 函数的声明、定义与调用的语法;函数的参数传递。 递归函数及其应用;函数重载; 指针与函数 5.1函数的基本概念 函数是C++程序结构中的基本单位。 1.什么叫函数 把实现特定功能的相关语句组织在一起,并给出相应的名称,就称为函数。 2.函数的作用 (1)便于程序实现; (2)减少程序的重复编写; (3)使程序结构清晰、增强易读性。 3.函数的分类 通常分为:标准库函数和用户自定义函数两大类。 标准库函数(简称为库函数):是C++系统提供的可以为任何程序所使用的公共函数。 用户自定义函数:是程序员编写的用于完成指定任务的函数。 5.2 函数原型 函数在使用之前要先声明。 C++中函数的声明总是由函数原型构成的。 1.什么叫函数原型 函数原型是一条特殊的说明语句,用来声明程序中将调用的函数。 函数原型由函数返回类型、函数名和参数表构成,以分号结束,并且一般放在程序的顶部。 2.函数原型的语法 [类型标识符] 函数名([参数类型表]); 例如:double max(double,double); 注意: (1)参数类型表给出函数所有参数的数据类型(无须给出参数名); (2)函数原型和函数定义在函数类型(返回值类型)、函数名以及参数表这三部分上必须完全一致,否则就会发生编译错误; (3)标准库函数的原型都在对应的头文件中(*.h)。 如果程序中使用到某些标准库函数,必须在程序顶部使用#include命令将对应的头文件包含进来。 3.函数原型的作用 作用:在程序中加入函数原型有利于保证函数定义和调用上的一致性。 一致性:是指定义和调用时函数类型、参数个数和参数类型方面的一一对应。 当程序中加入函数原型,一旦函数原型与函数调用或函数定义不同,编译系统会报告出错,并给出相应的出错信息。 5.3函数定义 在程序中使用函数必须先定义后使用。 1.语法(参见P:136) C++的函数由函数头部(函数原型)和函数体两部分组成。其语法描述为: [类型标识符] 函数名([参数表])//函数头部 { //函数体 [数据说明部分 ]; 执行部分; }; 解释: 类型标识符:用来说明函数的返回类型, 即:函数调用所返回的结果的数据类型。 C++语言规定除了特别情形之外,所有函数都必须在说明中指出返回类型。 如果省略类型标识符,则缺省类型是int; 如果函数无值返回,应说明为void类型。 例如:void print(); //返回类型是void double max(double ,double ); //返回类型是double 注意:函数的返回类型为非void型时,函数体要用return返回值,并且return语句中表达式的类型必须与函数的返回类型相一致。 解释: 函数名:用来给函数命名,C++用标识符来作为函数名。 参数表:用来说明函数的参数,函数的参数是函数所提供的数据接口,用来实现调用者与被调用者之间的数据传递。 参数说明必须给出参数的名称、类型,允许一个函数包含一到多个参数,参数之间用逗号分隔。 函数定义中的参数称为“形式参数”; 调用函数时所提供的参数称为“实在参数”。 注意:形参只能是变量。 例如:double max(double x,double y) max带有两个参数x和y,类型都是双精度型。 解释: 数据说明部分:在函数体内,用来说明在函数内部有效的数据对象(变量等),如果函数没有内部数据,则此部分可以省略。 在函数内部定义的变量称为局部变量。 局部变量仅在定义它的函数内部有效,局部变量未经初始化,其值总是不确定的。 执行部分:在函数体内,由若干可执行语句组成。该部分不能省略。 注意:C++不允许函数定义嵌套, 即:在函数定义中再定义一个函数是非法的。 2.作用用来实现某一特定的功能。 char upper(char c) { char c1; if (c=a c=z) c1=c-32; else c1=c; return (c1); } 5.4函数调用 函数的功能是通过函数调用实现的,调用时必须提供与函数定义相对应的各个参数的实际值。 1.函数调用的格式 函数名( [参数表] ); 说明: 函数是“按名调用”的,所以函数名应该准确无误。 参数表,给出与函数定义所描述的形式参数相对应的各个实在参数。 注意:实参与形参必须类型一致,个数相等,顺序吻合。 函数调用时所提供的实参,可以是常量、变量、表
显示全部