C++函数默认参数

C++函数默认参数教程

C++ 中,定义 函数 时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。

所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。

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++函数默认参数

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; }

程序运行后,控制台输出如下:

17_C函数默认参数.png

我们定义了一个函数 sum,该函数接受两个 参数,一个 int 类型 的 num1,和一个 int 类型的 num2,同时,num2 参数还有一个默认值 100,该函数实现的功能是计算从 num1 到 num2 的和。

最后,我们在 main 函数两次调用了函数 sum,第一次调用时,我们传入了两个参数,此时计算的就是我们传入的两个参数之间所有数的和,第二次,调用时,我们只传递了第一个参数,此时第二个参数就是使用默认值 100。

C++函数多个默认参数

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; }

程序运行后,控制台输出如下:

18_C函数默认参数.png

这次,我们定义的函数 sum,两个参数都有默认参数,因此,我们可以不传递任何参数调用该函数。

C++函数默认参数总结

在 C++ 中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。

所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。