C++语言程序设计 第三章函数
第三章 函数 C++语言程序设计
C++语言程序设计 本章主要内容 函数的声明和调用 函数间的参数传递 内联函数 ●带默认形参值的函数 函数重载 C++系统函数 x
C++语言程序设计 2 本章主要内容 ⚫ 函数的声明和调用 ⚫ 函数间的参数传递 ⚫ 内联函数 ⚫ 带默认形参值的函数 ⚫ 函数重载 ⚫ C++系统函数
C++语言程序设计 本章学习线索 °1.什么是函数? °2.如何使用函数? ●3.函数的调用机制是什么? °4.函数的参数传递机制是什么? 5.理解内联函数、函数重载、和带 默认形参值的函数。 x
C++语言程序设计 3 本章学习线索 ⚫ 1. 什么是函数? ⚫ 2. 如何使用函数? ⚫ 3. 函数的调用机制是什么? ⚫ 4. 函数的参数传递机制是什么? ⚫ 5. 理解内联函数、函数重载、和带 默认形参值的函数
C++语言程序设计 升么是函数 数 的。程序设计中函数的概念是借用数学中的 声函数术语。最小的功能模块 明。在面向过程的程序设计中,函数是模块 与划分的最基本单元 使。面向对象程序设计中,函数是对类功能 用的抽象。 °函数由函数名、参数表、返回值、以及 实现函数功能的语句序列构成。大 程序通过函数调用实现功能衔接
C++语言程序设计 4 什么是函数 ⚫ 程序设计中函数的概念是借用数学中的 函数术语。最小的功能模块。 ⚫ 在面向过程的程序设计中,函数是模块 划分的最基本单元。 ⚫ 面向对象程序设计中,函数是对类功能 的抽象。 ⚫ 函数由函数名、参数表、返回值、以及 实现函数功能的语句序列构成。 ⚫ 程序通过函数调用实现功能衔接。 函 数 的 声 明 与 使 用
C++语言程序设计 例3-1编写一个求X的n次方的函数 数 include 函数声明 的 using name space std double ower(double x, int n) int main 声明与使用 函数调用 cout < 5 to the ower 2 is < power (5, 2)<< endli double power (double x, int n) double val 1.0 函数定义 while (n val val*x; 5 to the power 2 return(val)i is 25
C++语言程序设计 5 例3-1编写一个求x的n次方的函数 #include using namespace std; double power (double x, int n); int main() { cout << "5 to the power 2 is " << power(5,2) << endl; } double power (double x, int n) { double val = 1.0; while (n--) val = val*x; return(val); } 函 数 的 声 明 与 使 用 5 to the power 2 is 25 函数声明 函数调用 函数定义
C++语言程序设计 函教的定义 数函数定义的语法形式 的 声类型标识符函数名(形式参数表) 明 若无参数, 写void 与 语句序列 使 是被初始化的内部 变量,寿命和可见 用 返回值类型 性仅限于函数内部 若无返回值,写void x
C++语言程序设计 6 函数的定义 函数定义的语法形式 类型标识符 函数名(形式参数表) { 语句序列 } 函 数 的 声 明 与 使 用 若无参数, 写void 是被初始化的内部 变量,寿命和可见 返回值类型 性仅限于函数内部 若无返回值,写void
C++语言程序设计 函教的定义 ●形式参数表 数的声明与使用 程序通过参数把信息传给函数,因此需要给参数指 定类型和名称 name,, name2, ., namen 函数的返回值 函数可以把数据返回给调用者,函数返回值类型。 由 return语句给出,例如: return 0i 无返回值的函数(void类型),不必写 retur 语句
C++语言程序设计 7 函数的定义 ⚫ 形式参数表 程序通过参数把信息传给函数,因此需要给参数指 定类型和名称。 name1 , name2 , ..., namen ⚫ 函数的返回值 函数可以把数据返回给调用者,函数返回值类型。 – 由 return 语句给出,例如: return 0; – 无返回值的函数(void类型),不必写return 语句。 函 数 的 声 明 与 使 用
C++语言程序设计 数的调用 调用前先声明函数原型: 数的声明与使用 在主调函数中,或程序文件中所有函数之外,按 如下形式说明: 类型标识符被调用函数名(含类型说明的形 参表); 含义是告诉编译器有一个函数可以使用了,以及 使用该函数的参数和返回值要求。 调用形式 函数名(实参列表); 嵌套调用 函数可以嵌套调用,但不允许嵌套定义。次 ●递归调用 x 函数直接或间接调用自身
C++语言程序设计 8 函数的调用 ⚫ 调用前先声明函数原型: – 在主调函数中,或程序文件中所有函数之外,按 如下形式说明: 类型标识符 被调用函数名 (含类型说明的形 参表); – 含义是告诉编译器有一个函数可以使用了,以及 使用该函数的参数和返回值要求。 ⚫ 调用形式 函数名(实参列表); ⚫ 嵌套调用 – 函数可以嵌套调用,但不允许嵌套定义。 ⚫ 递归调用 – 函数直接或间接调用自身。 函 数 的 声 明 与 使 用
C++语言程序 3-2 函教定义声明调用举例 数 #inc ludesiostream 的 using name space std 函数原型描述 //函数的声明 了函数接口 声明 double add(double x, double y) 与/函数的定义,返回值是 double类型 Ts double add( double x, double y) 用( double z; z-Xty cout<<x+ <y = <<zend return(z)
C++语言程序设计 9 例3-2 函数定义声明调用举例 #include using namespace std; //函数的声明 double add(double x,double y); //函数的定义,返回值是double类型 double add(double x,double y) { double z; z=x+y; cout<<x<<"+"<<y<<"="<<z<<endl; return(z); } 函 数 的 声 明 与 使 用 函数原型描述 了函数接口
C++语言程序 3-2 函教定义声明调用举例 数 int main i double a=0.5, b=1.0 的 //不同参数形式调用 cout<<"add(1.5,2.5)="<add(1.5,2.5)<end1; 声明与使用 cout<< add(a, b)="add(a, b)<endl cout< add(2*a, a+b)=<<add (2*a, a+b)<endl //以表达式语句方式调用 double c=2*add(a, b): cout<<"c=<<c<<endl ad(2*a,b);//以语句方式调用函数addQ //以函数参数形式调用函数addC cout<<add(a, add(a, b))="<<add(a, add(a, b))kndl return O
C++语言程序设计 10 例3-2 函数定义声明调用举例 int main() { double a=0.5,b=1.0; //不同参数形式调用 cout<<"add(1.5,2.5)="<<add(1.5,2.5)<<endl; cout<<"add(a,b)="<<add(a,b)<<endl; cout<<"add(2*a,a+b)="<<add(2*a,a+b)<<endl; //以表达式语句方式调用 double c=2*add(a,b); cout<<"c="<<c<<endl; add(2*a,b); //以语句方式调用函数add() //以函数参数形式调用函数add() cout<<"add(a,add(a,b))="<<add(a,add(a,b))<<endl; return 0; } 函 数 的 声 明 与 使 用