函数,将数据处理过程封装成一个逻辑独立、可重用的语法单元,相当于制造一个数据处理机器。
定义函数,需要说明函数的4个要素:函数名、函数入口(形式参数)、函数出口(返回类型)、以及函数的运转过程(函数体)。
定义好函数之后,就可以调用函数来完成数据处理任务。此时,需要确切地指定实际要处理的数据,它不再是形式上存在,而是实际存在,称为实参。可见,实参是函数调用时的实际数据,形参是函数定义时的形式数据。
C++语言允许函数先调用后定义,但是,它要求在调用函数之前,必须进行函数声明以保证函数的存在性。定义包含声明,一次定义,多次声明。
函数定义 = 返回类型 + 函数名 + 形参表 + 函数体
函数声明 = 返回类型 + 函数名 + 形参表
调用函数的六个步骤:实参求值、流程跳转、形参生成、被调函数执行、流程回转、重启主调函数。
调用函数,需要根据实参产生形参,即形参生成。C++语言提供了两种形参变量的生成方式:克隆生成方式和别名生成方式。其中,
n 克隆方式:形参是实参的克隆,形参的变化不影响实参;
n 别名方式:形参是实参的别名,修改形参就是修改实参;
函数可以嵌套调用其它函数,甚至可以递归调用自己。对于功能简单且频繁使用的函数,C++语言建议将其定义为内联函数,以省去函数调用的开销。
函数的名字可以重复利用,但必须保证形式参数不同,即函数重载。在函数调用时,编译器会选择与实参类型和个数匹配最好的重载函数来调用。
此外,在定义或声明函数时,可以给函数的形式参数指定默认值。C++语言要求,具有默认值的形参必须排在形式参数表的右边。

