在 C++ 中,定义 函数 时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。
所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。
returntype funcname(paramterType param1, paramterType2 param2 = value) // inline 与函数定义体放在一起
{
return [val];
}
参数 | 描述 |
---|---|
returntype | 函数的返回值类型。 |
funcname | 函数名。 |
paramterType | 函数的参数类型。 |
param1 | 函数的形参1。 |
paramterType2 | 函数的参数类型。 |
param2 | 函数的形参2。 |
value | 函数形参2的默认值。 |
我们定义了一个函数 funcname,该函数的返回值类型为 returntype,函数有两个参数,第一个参数的类型为 paramterType,形参为 param1,第一个参数的类型为 paramterType2,形参为 param2,且有个默认值 value。
如果我们调用函数 funcname,并传递两个参数 value1 和 value2,那么形参1的值就是 value1,形参2的值就是 value2,但如果我们只传递一个参数 value1,那么形参1的值就是 value1,形参2的值就是默认值 value。
C++ 中函数默认参数的使用
#include <iostream>
using namespace std;
int sum(int num1, int num2 = 100)
{
int ret = 0;
for(int i = num1; i <= num2; i++)
{
ret += i;
}
return ret;
}
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
int num1 = 1;
int num2 = 1024;
int ret1 = sum(num1, num2);
int ret2 = sum(num1);
cout << "ret1 = " << ret1 << ", ret2 = " << ret2 << endl;
return 0;
}
程序运行后,控制台输出如下:
我们定义了一个函数 sum,该函数接受两个 参数,一个 int 类型 的 num1,和一个 int 类型的 num2,同时,num2 参数还有一个默认值 100,该函数实现的功能是计算从 num1 到 num2 的和。
最后,我们在 main 函数两次调用了函数 sum,第一次调用时,我们传入了两个参数,此时计算的就是我们传入的两个参数之间所有数的和,第二次,调用时,我们只传递了第一个参数,此时第二个参数就是使用默认值 100。
C++ 中函数多个默认参数的使用
#include <iostream>
using namespace std;
int sum(int num1 = 1, int num2 = 100)
{
int ret = 0;
for(int i = num1; i <= num2; i++)
{
ret += i;
}
return ret;
}
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
int num1 = 1;
int num2 = 1024;
int ret1 = sum(num1, num2);
int ret2 = sum(num1);
int ret3 = sum();
cout << "ret1 = " << ret1 << ", ret2 = " << ret2 << ", ret3 = " << ret3 << endl;
return 0;
}
程序运行后,控制台输出如下:
这次,我们定义的函数 sum,两个参数都有默认参数,因此,我们可以不传递任何参数调用该函数。
在 C++ 中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。
所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。