C++ 初学者指南 第一篇(12)

必备技能1.10:引入函数
    C++程序一般是由多个叫作函数的代码块构成的。尽管咱们会在第五章对函数进行详细的介绍,这里也有必要进行一个简单的介绍。函数的定义以下:一个包含了一条或者多条C++语句的子程序。
    每一个函数都有一个名字,经过名字来调用该函数。调用函数的时候,须要在本身的程序的源码中指定函数的名字,后面紧跟着函数的参数。例如,有个函数名字为MyFunc。以下代码展现了如何调用该函数:
MyFunc();
当调用一个函数的时候,程序的控制就转移到了被调用函数中,函数中的代码将被执行。当函数中的代码执行完毕后,程序的控制又转回给函数的调用者。所以,函数是为一个程序的其它部分完成相应功能的。
    有些函数须要一个或者更多的参数,咱们在调用的时候须要传入这些参数给函数。所以,一个参数就是咱们传入到函数中的值。在调用函数的时候,参数是放置在括号中的。例如,若是函数MyFunc()须要一个整型数做为参数,那么下面的代码就是在调用函数的时候传入了参数2:
MyFunc(2);
当函数须要两个或者更多参数的时候,这些参数之间用逗号来分隔。在本书中,术语参数列表指的就是用逗号分隔的参数。注意,并非全部的函数都须要参数。若是函数不须要参数,则括号中为空。
    函数能够为调用者返回一个值。并非全部的函数都须要返回值的,但大多数都是须要返回值的。函数的返回值能够被赋值给调用者中的一个变量,这是经过把对函数的调用放置在赋值语句的右边来实现的。例如,若是函数MyFunc()返回一个值,那么能够经过下面的方式来调用它:
x=MyFunc(2);
首先,函数MyFunc()被调用。当它返回的时候,它的返回值被赋值给x。还能够在表到式中调用函数。例如,
x=MyFunc(2)+10;
在这中状况下,函数MyFunc()的返回值加上10后被赋值给x。一般状况下,当在语句中遇到函数的名字,该函数就会自动被调用,以便获取它的返回值。
    复习一下,一个参数就是调用函数的时候传入的值。返回值是函数返回给调用者的值。下面是一个简短的小程序,它展现了如何调用函数。其中使用了C++中内置的函数,叫作abs()来计算一个数的绝对值。abs()函数须要一个参数,把这个参数转换成它的绝对值,并返回结果。ios

// 使用abs() 函数
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
    int result;
    result = abs(-10); //调用函数abs(),将其返回值赋值给变量result
    cout << result;
    return 0;
}

这里,传入到abs()函数中的值为-10。abs()函数在调用的时候接收传入的参数-10,并返回-10的绝对值,也就是10给调用者。这个指被赋值给变量result。所以,该程序在屏幕上显示10。
    关于上面这个程序须要注意的另一个地方:它包含了头文件cstdlib。这是abs()函数须要的头文件。一旦咱们使用了内置的函数,咱们必须包含它的头文件。
    一般状况下,咱们的程序须要两种类型的函数。第一种就是咱们本身写的函数,main()就是其中之一。后面,咱们会学习到如何本身编写其它的函数。咱们会看到,一个真实的C++程序实际上包含了许多本身编写的函数。
    第二种就是编译器提供的函数。前面例子中的abs()函数就是一个这样的函数。咱们本身写的程序一般是即包含本身编写的函数也包含编译器提供的函数。
    当在本文中说起函数的时候,本书已经也即将继续使用C++程序中的传统表达函数的方式:就是函数名字后面跟一对括号。例若有个函数的名字为getval,在书写的时候会书写成getval()。本书中的这种写法是为了把变量的名字和函数的名字区分开来。
小程序

C++库
    正如前面解释的那样,abs()函数是C++编译器提供的。这个函数是在C++的标准库中提供的。C++标准库还提供了许多其它的函数。本书中的程序都会用到库函数。
    C++的标准函数库中定义了大量的函数。这些函数完成了不少必要的功能,包括输入输出操做,数学运算和字符串处理。当使用库函数的时候,C++编译器自动把这些函数的目标代码连接到咱们本身程序的目标代码中去。
    由于C++标准库很庞大,它已经包含了许多咱们在本身程序中须要的函数。这些函数就像盖房子时候的砖块,咱们仅仅须要把它们装配起来就能够了。咱们能够仔细阅读编译器的函数库的文档,看看编译器都提供了那些有用的函数。咱们会惊奇地发现这些函数是如此的多样。若是咱们本身编写了一个本身反复使用的函数,这个函数也能够存储在库中。
    除了提供库函数外,每一个C++编译器还提供了类库,这个就是面向对象的库。然而,在咱们学习了类和对象之后,咱们才能使用类库。函数

 

练习
    1. 什么是函数?
    2. 函数是经过使用它的名字来调用的,对吗?
    3. 什么是C++标准函数库?
答案
    1. 一个函数就是包含了一条或者多条语句的子程序。
    2. 正确
    3. C++标准库就是全部C++编译器提供的函数的集合。学习