函数参数缺省值:
1、全部指定:函数内部参数全部指定值 void fun(int a = 12. char c = 'c')
2、部分指定:就是有的值未指定值 这时候就是从右往左连续指定,中间不能有空缺,意思是只能在最左边有空缺
void fun1(int a , char c = 'c', float f = 123.333)
函数调用
1、对于有默认值的参数,可以不传递实参,传递实参的话就会覆盖掉默认值
例如 fun(123, 'g')就会覆盖掉原有的12和c,这里面c++会智能识别参数类型
2、没有默认值的参数要传递实参 fun1(123)
函数重载
在一个作用域内,函数名字相同,参数列表不同
1、参数类型不同 这俩条件为或的关系
2、参数个数不同
void fun(int a )
{
cout << a << endl;
}
void fun(int a, int b) //此时函数与上一个作用域相同 参数个数不同
{
cout << a << ' ' << b << endl;
}
void fun(char c) //类型不同
{
cout << c << endl;
}
int main()
{
//调用:标注字符
fun('c');
system("pause");
return 0;
}
注意点
1、默认参数和重载结合使用,可能会造成调用不明确
void fun1(int a, int b, int c = 0);
void fun1(int a, int b);
int main()
{
fun(1,2); //传递两个参数,编译正常,但运行时候会报错
}
2、返回值不作为函数重载的条件
int fun();
void fun(); //这种声明方式报重定义错误
3、参数是浮点型float,double的互为重载的函数,一定要注意参数传递