C++带参数默认值的函数

定义形式:

void fun(int a = 1 ,int b = 2 ,int c = 3 ,int d = 4){ //函数定义
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
cout<<"d="<<d<<endl;
}

调用方式:

fun();               //a=1,b=2,c=3,d=4;
fun(-1); //a=-1,b=2,c=3,d=4;
fun(-1,-2); //a=-1,b=-2,c=3,d=4;
fun(-1,-2,-3); //a=-1,b=-2,c=-3,d=4;
fun(-1,-2,-3,-4); //a=-1,b=-2,c=-3,d=-4;
可见调用函数时,函数的实参按照参数列表从左往右的顺序与形参一一对应。

带默认值和不带默认值混合的情况:

void fun(int a ,int b = 2 ,int c = 3 ,int d = 4);  // 正确
void fun(int a = 1 ,int b ,int c = 3 ,int d = 4) // 错误

不带默认值的参数都应该放在参数列表的左边,有默认值的参数都应该放在参数列表的右边

声明和定义不能同时有默认值:

void fun(int a=1,int b=2,int c=3,int d=4);

void fun(int a=1,int b=2,int c=3,int d=4{
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
cout<<"d="<<d<<endl;
}

C++带参数默认值的函数

编译出错,当又有声明又有定义时,定义中不允许默认参数。


函数声明起决定性作用:

void fun(int a,int b,int c,int d);

void main(){
fun();
}
void fun(int a=1,int b=2,int c=3,int d=4){
cout<<"a="<<a<<endl<<"b="<<b<<endl<<"c="<<c<<endl<<"d="<<d<<endl;
}

C++带参数默认值的函数

编译出错,函数声明显示该函数参数没有默认值,所以调用函数时要求必须有4个实参

上一篇:Android框架中的广播机制


下一篇:Hadoop源码学习笔记(6)——从ls命令一路解剖