函数提高

函数默认参数

1
2
3
int func(int a, int b = 10, int c = 10) {
return a + b + c;
}

函数占位参数

1
2
3
4
5
6
7
8
int func(int a, int) {
return a;
}
int main()
{
int c = 0;
c = func(1,2);
}

函数占位参数可以没有实际意义,但是传参时必须要传。

函数重载的条件

  • 同一作用域下;
  • 函数名必须相同;
  • 函数参数类型不同,个数不同和顺序不同,要满足其一;

函数重载的注意事项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//情况1:引用作为重载条件
void func(int& a)
{
cout << "func (int &a) 调用 " << endl;
}

void func(const int& a)
{
cout << "func (const int &a) 调用 " << endl;
}
int main()
{
int a = 10;
func(10);//调用带const
func(a);//调用无const
}
1
//情况2:带有默认参数作为重载条件,容易产生歧义,应当避免。