1.函数默认参数

如果我们自己传入数据,就使用自己的数据,如果没有,就使用默认值。

语法:返回值类型 函数名(形参=默认值){}


注意事项:

1.如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值

2.如果函数的声明(原型)有默认参数,那函数的实现就不能有默认参数。

声明和实现只能有一个有默认值


2.函数占位参数

语法:函数返回值类型 函数名 (数据类型){}

占位参数 还可以有默认参数


3.函数重载

1.作用:函数名可以相同,提高复用性。

函数重载满足条件:

1.同一个作用域下 。  

2.函数名称相同 。

3.函数参数类型不同或者个数不同或者顺序不同。

注意:函数的返回值不可以作为函数重载的条件。


注意事项:

1.引用作为重载条件

fun(a)调用的是  (1)

void fun(int& a)   //int &a=10;不合法      (1)

{

cout << "fun(int &a)的调用" << endl;

}


fun(10)调用的是  (2)

void fun(const int& a)  //const int &a=10; 合法  (2)

{

cout << "fun(const int &a)的调用" << endl;

}

2.函数重载碰到函数默认参数。

例子:

void fun1(int a, int b = 10)

{

}

void fun1(int a)

{

}

fun1(10); 当函数重载碰到默认参数,出现二义性,报错,尽量避免。