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

来源:互联网 发布:淘宝详情页跳出率70% 编辑:程序博客网 时间:2024/05/25 23:57

定义形式:

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;}

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

函数声明起决定性作用:

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;}

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