在 C++ 中,声明一个函数时,可以为函数的参数指定默认值。
当调用有默认参数值的函数时,可以不写出参数,这时就相当于以默认值作为参数调用该函数。
void Function1(int x = 20); // 函数的声明中,指明参数 x 的默认值是 20
...
Function1(); // 正确,等效于 Function1(20);
不仅可以用常数,还可以用任何有定义的表达式作为参数的默认值。
int Max(int m, int n);
int a, b;
void Function2(int x, int y = Max(a, b), int z = a * b)
{
...
}
Function2(4); // 正确,等效于 Function2(4, Max(a, b), a * b);
Function2(4, 9); // 正确,等效于 Function2(4, 9, a * b);
Function2(4, 2, 3); // 正确
Function2(4, , 3); // 错误!这样的写法不允许,省略的参数一定是最右边连续的几个
Tips:
函数参数的默认值可以像上面的Function1那样写在声明函数的地方,也可以像Function2那样写在定义函数的地方,但是不能在两个地方都写。一般情况下,在函数声明(原型)中指定默认值,函数定义的写法与没有默认参数时相同。