复习函数的基本知识
来复习一下介绍过的有关函数的知识。要使用 C++ 函数,必须完成如下工作:
- 提供函数定义;
- 提供函数原型;
- 调用函数。
库函数是已经定义和编译好的函数,同时可以使用标准库头文件提供其原型,因此只需正确地调用这种函数即可。本书前面的示例已经多次这样做了。例如,标准 C 库中有一个 strlen() 函数,可用来确定字符串的长度。相关的标准头文件 cstring 包含了 strlen() 和其他一些与字符串相关的函数的原型。这些预备工作使程序员能够在程序中随意使用 strlen() 函数。
然而,创建自己的函数时,必须自行处理这 3 个方面—定义、提供原型和调用。程序清单 7.1 用一个简短的示例演示了这 3 个步骤。
#include <iostream>
void simple();
int main() {
using namespace std;
cout << "main() will call the simple() function:\n";
simple();
return 0;
}
void simple() {
using namespace std;
cout << "I'm but a simple function.\n";
}
下面是该程序的输出:
main() will call the simple() function:
I'm but a simple function.
执行函数 simple() 时,将暂停执行 main() 中的代码;等函数 simple() 执行完毕后,继续执行 main() 中的代码。在每个函数定义中,都使用了一条 using 编译指令,因为每个函数都使用了 cout。另一种方法是,在函数定义之前放置一条 using 编译指令或在函数中使用 std::cout。
下面详细介绍这 3 个步骤。
定义函数
可以将函数分成两类:没有返回值的函数和有返回值的函数。没有返回值的函数被称为 void 函数,其通用格式如下:
void functionName(parameterList) {
statements(s);
return; //optional
}
其中,parameterList 指定了传递给函数的参数类型和数量,本章后面将更详细地介绍该列表。可选的返回语句标记了函数的结尾;否则,函数将在右花括号处结束。void 函数相当于 Pascal 中的过程、FORTRAN 中的子程序和现代 BASIC 中的子程序过程。通常,可以用 void 函数来执行某种操作。例如,将 Cheers! 打印指定次数(n)的函数如下:

