默认参数
声明一个函数时,可以给它的参数指定一个默认的值,这样以后调用该函数的时候如果不写出每个参数的值就会使用它的默认值。给函数指定默认参数需要注意以下几点:
- 默认参数需要从右往左指定,因为如果不是这样,编译器不知道你提供的参数是否覆盖到默认参数(你也说不清吧);
- 只能在定义或声明时指出默认参数,同时指定会报错。如果函数有声明就会以声明的为准,定义时指出的默认参数就会无效,所以最好在声明时指定。
- 函数重载时需要特别注意是否会与带有默认参数的函数冲突。
#include <iostream>
using namespace std;
// void func(int a = 1, int b = 2, int c); // 错误,如果调用func(1)是给a还是c传参?懵吧
void func(int a, int b = 2, int c = 3);
int main()
{
func(1);
func(2, 12);
func(2, 12, 1);
return 0;
}
void func(int a, int b, int c)
{
cout << " a=" << a
<< " b=" << b
<< " c=" << c << endl;
}
/*
输出结果:
a=1 b=2 c=3
a=2 b=12 c=3
a=2 b=12 c=1
*/