Functions
函数
每个任务都可以分解为子任务,每个子任务可以直接以代码形式表示,或者进一步分解为更小的子任务。这种方法称为逐步细化。函数用于编写需要解决的子任务的代码。描述函数功能的代码称为函数定义:
function_header
{
instructions
}第一个大括号之前的部分是函数定义的头部,大括号之间的部分是函数定义的主体。函数头部包括返回值类型、名称(标识符)和形式参数)的描述。传递给函数的参数数量有限,不能超过64个。
函数可以在程序的任何其他部分根据需要多次调用。实际上,返回类型、函数标识符和参数类型构成了函数原型。
函数原型是函数声明,而不是其定义。由于返回类型和参数类型的明确声明,在函数调用过程中可以进行严格的类型检查和隐式类型转换。通常会在类中使用函数声明以提高代码的可读性。
函数定义必须与其声明完全匹配。每个声明的函数都必须被定义。
示例:
double // return value type
linfunc (double a, double b) // function name and parameter list
{
// composite operator
return (a + b); // return value
}return运算符可以返回位于该运算符内的表达式的值。如果需要,表达式值将被转换为函数结果类型。可以返回:简单类型、简单结构、对象指针。使用return运算符不能返回任何数组、类对象或复合结构类型的变量。
不返回值的函数应描述为void类型。
示例:
void errmesg(string s)
{
Print("error: "+s);
}传递给函数的参数可以具有默认值,这些默认值由该类型的常量定义。
示例:
int somefunc(double a,
double d=0.0001,
int n=5,
bool b=true,
string s="passed string")
{
Print("Required parameter a = ",a);
Print("Pass the following parameters: d = ",d," n = ",n," b = ",b," s = ",s);
return(0);
}如果任何参数有默认值,所有后续参数也必须具有默认值。
错误声明示例:
int somefunc(double a,
double d=0.0001, // default value 0.0001 declared
int n, // default value is not specified !
bool b, // default value is not specified !
string s="passed string")
{
}另请参阅
最后更新于