文档介绍:C++程序设计
第5章函数
函数概述
函数定义与声明
函数调用
函数的参数
函数的嵌套调用
函数的递归调用
内联函数
函数重载
指向函数的指针
作用域与生存期
函数存储类
本章小结
第5章函数
函数概述
在程序设计中,常常将程序按功能划分为模块,模块由函数来实现,函数是一段实现某种功能的程序,这段程序相对独立,具有自己的输入和输出,可以被重复调用。
一个C++程序由一个或多个函数组成,且至少有一个main函数,整个程序从main函数开始执行,由main函数调用其它函数,调用结束后,流程回到main函数,在main函数中结束整个程序的运行。
函数封装了一些程序代码和数据,实现了更高级的抽象,封装或隐藏了具体实现的细节问题,更利于实现代码重用与数据共享,同时,可以节省开发时间、增强程序的可靠性和便于维护等。
【例 】求两个整数中的大者并输出结果。
程序一:
#include <iostream>
using namespace std;
int main( ) {
int a, b, max;
cout << "Please enter two integers: " << endl;
cin >> a >> b;
if (a > b)
max = a;
else
max = b;
cout << "The max is: " << max << endl;
return 0;
}
函数概述
程序二:
#include <iostream>
using namespace std;
int main( ) {
int a, b, max;
int maxvalue(int i, int j); // 函数声明
cout << "Please enter two integers: " << endl;
cin >> a >> b;
max = maxvalue(a, b); // main是主调函数,maxvalue是被调函数
cout << "The max is: " << max << endl;
return 0;
}
int maxvalue( int i, int j) { // 定义maxvalue函数
int c;
if( i> j)
c = i;
else
c = j;
return c;
}
函数概述
函数概述
综上所述,归纳如下:
一个C++源程序文件可由一个或多个函数组成,一个源程序文件是一个编译单位,C++以源程序为单位进行编译,而不是以每一个函数为单位进行编译。当程序较大时,一般将函数或其它内容分别放到若干个源文件中,由这些源文件组成一个C++程序;
C++程序从main函数开始执行,在main函数中调用其它函数,调用结束后,程序流程回到main函数,在main函数中结束整个程序的运行。
函数概述
在C++程序中,所有函数都是平行的,在一个函数中不能定义另一个函数,即函数不能嵌套定义,但函数可以嵌套调用。
从用户使用的角度看,函数分为两种:用户自定义函数和库函数,库函数由C++语言提供,用户可以直接使用这些函数。
函数定义与声明
函数必须先定义后使用,函数定义由函数头和函数体两部分组成,函数头包括类型说明符和函数名,函数体由实现函数功能的语句序列构成(包括变量定义)。函数的定义可分为无参数定义和有参数定义。
无参函数的定义
<类型说明符> <函数名>( ) {
// 局部变量定义和语句序列
};
函数定义
各部分说明如下:
类型说明符:说明函数返回值的数据类型,可为任一基本数据类型或抽象数据类型。当函数返回值为整型时,类型说明符可省略,当函数没有返回值时,可定义其类型为void。
函数名:命名规则与标识符相同,函数名后有一个空括号,其中无参数,但括号不可少。
函数体:由一对花括号括起来的语句序列,一个函数的功能,由函数体中的语句序列完成,在函数体中定义的变量只在函数执行时才存在。
函数定义
void print ( ) {
cout << "HelloWorld!" << endl;
}
对于无参函数的定义可有如下两种形式:
无形参但有返回值,例如
void getnum ( ) {
int x;
cout << “please enter an integer" << endl;
cin >> x;
return x; // 从键盘上获取一个整数
}
无形参也无返回值,例如
void message ( )