带参数默认值的函数说明:
函数有一个或多个的参数有默认值;如float Area(float r = 3.5); int Sum (int a,int b = 5, int c =10)。
带参数默认值函数注意:
1、默认值参数只能放在函数声明或定义处,一般放在函数声明中。
int Fun(int a, int b, int c = 9);
int Fun(int a, int b, int c) //int Fun(int a, int b, int c = 9) error,重定义默认参数
{
return a+b+c;
}
一般情况,调用方只能看到函数声明,如果写在函数定义中,调用方不知道默认参数是什么;如果默认参数写在函数定义处,函数声明(无默认参数)无法确定这个函数是带默认参数的。
2、默认参数规则:
a、自右向左,依次赋值。(调用参数传递参数是从左到右的,所以没有默认参数都必须传值进来)int Fun(int a = 1, int b, int c = 3); //error
int Sum(int a , int b, int c = 3);
Sum(1 ); //error, int b未初始化
Sum(1 ,2); //Sum == 6
Sum(1 ,2, 5);//Sum == 8
b、默认值只能赋值一次。
c、默认值可以使用全局变量、函数返回值。
int gdata = 10;
static int gdata1 = 30;
int Sum(int a, int b)
{
return a + b;
}
int Func(int a, int b, int c = gdata);
int Func(int a, int b , int c= Sum(gdata,gdata1));