wResult(int); 7: 8:int main(int argc,char **argv); 9:{ 10: int x,y,result; 11: cout << end1 << "Enter the first value:"; 12: cin >> x; 13: cout << "Enter the second value: "; 14: cin >> y; 15: result=multiply(x,y); 16: showResult(result); 17: cout << end1 << end1 << "Press any key to continue..."; 18: getch(); 19: return 0 20: } 21: 22: int multiply(int x,int y) 23: { 24:return x * y; 25: } 26: 27: void showResult(int res) 28: { 29:cout << "The result is: " << res <<end1; 30: } 这
个程序的11到14行用标准输入流cin向用户取两个数字,第15行调用multiply()函数将两个数相乘,第16行调用showResult()函
数显示相乘的结果。注意主程序前面第5和第6行multiply()和showResult()函数的原型声明。原型中只列出了返回类型、函数名和函数参
数的数据类型。这是函数声明的最基本要求。函数原型中还可以包含用于建档函数功能的变量名。例如,multiply()函数的函数声明可以写成如
下:int multiply(int firstNumber,int
secondNumber);这里函数multiply()的作用很明显,但代码既可通过说明也可通过代码本身建档。注意清单1.4中函数
multiply()的定义(22到25行)在主函数定义码段(8到20行)之外。函数定义中包含实际的函数体。这里的函数体是最基本的,因为函数只是将
函数的两个参数相乘并返回结果。清单1.4中函数multiply()可以用多种方法调用,可以传递变量、直接数或其它函数调用的结果: result = multiply(2,5);//passing literal values result = multiply(x,y); //passing variables showResult(multiply(x,y)); //return value used as a //parameter for another function multiply(x,y);//return value ignored 注
意
最后一例中没有使用返回值。本例中调用函数multiply()而不用返回值没什么道理,但C++(www.cppentry.com)编程(www.cppentry.com)中经常忽略返回值。有许多函数是先进行特定动作再返
回一个数值,表示函数调用的状态。有时返回值与程序无关,可以忽略不计。如果将返回值忽略,则只是放弃这个值,而不会有别的危害。例如,前面的样本程序中
忽略了getch()函数的返回值(返回所按键的ASCII值)。函数可以调用其它函数,甚至可以调用自己,这种调用称为递归(recursion)。这
在C++(www.cppentry.com)编程(www.cppentry.com)中是个较复杂的问题,这里先不介绍。新术语
递归(recursion)就是函数调用自己的过程。本节介绍的函数指的是C或C++(www.cppentry.com)程序中的独立函数(独立函数不是类的成员)。C++(www.cppentry.com)中的独立函数可以
和C语言中一样使用,但C++(www.cppentry.com)将函数进一步深化,将在稍后介绍C++(www.cppentry.com)时介绍。 函数规则 · 函数可以取任意多个参数或不取参数。 · 函数可以返回一个值,但函数不强求返回一个值。 · 如果函数返回void类型,则不能返回数值。 如果要让返回void类型的函数返回数值,则会发生编译错误。返回void类型的函数不需包含return语句,但也可以包含这个语句。如果没有return语句,则函数到达末尾的结束大括号时自动返回。 · 如果函数原型表示函数返回数值,则函数体中应包含返回数值的return语句,如果函数不返回数值,则会发生编译错误。 · 函数可以取任意多个参数,但只能返回一个数值。 · 变量可以按数值、指针或引用传递给函数(将在稍后介绍)。 语法:函数语句的声明(原型)格式如下: ret_type function_name(argtype_1 arg_1,argtype_2 arg_2,...,argtype_n arg_n); 函
数声明表示代码中要包括的函数,应当显示函数的返回数据类型(ret_type)和函数名(function_name),表示函数所要数据变元的顺序
(arg_1,arg_2,...,arg_n)和类型(argtype_1,argtype_2,...argtype_n)。 函数语句的定义格式如下: ret_type funct |