定義形式:
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;
}