1. 程式人生 > >四、c++定義和宣告設定預設引數

四、c++定義和宣告設定預設引數

#include<iostream>
using namespace std;
int f(int a=4,int b=4);
int main()
{
cout<<f(3,3)<<endl;
return 0;
}
int f(int a=4,int b=4)
{

return a+b;
}

過載的時候,一個函式帶有引數說明的時候,只能再定義時候或者宣告的時候設定預設引數,不能在這兩個地方同時設定;所以上面程式的程式碼是無法編譯通過的;(有情況除外)

#include<iostream>
using namespace std;
int
f(int a,int b); int main() { cout<<f(3,3)<<endl; return 0; } int f(int a=4,int b=4) { return a+b; }

正確—-輸出結果為6

#include<iostream>
using namespace std;
int f(int a=4,int b=4);
int main()
{
cout<<f(3,3)<<endl;
return 0;
}
int f(int a,int b)
{

return a+b;
}

正確—–輸出結果為6

#include<iostream>
using namespace std;
int f(int ,int);
int main()
{
cout<<f(3,3)<<endl;
return 0;
}
int f(int a=4,int b=4)
{

return a+b;
}

此處可以在定義函式的時候省去函式宣告的引數,在函式定義的時候設定引數的預設值;

#include<iostream>
using namespace std;
int f(int a=4,int b);
int main()
{
cout<<f(3
,3)<<endl; return 0; } int f(int a,int b) { return a+b; }

除此之外,引數的預設定義要從右往左定義,不能右面的引數沒有定義,而左面的引數定義了;上面程式碼是錯誤的;

#include<iostream>
using namespace std;
int f(int a,int b=4);
int main()
{
cout<<f(3,3)<<endl;
return 0;
}
int f(int a,int b)
{

return a+b;
}

正確—-輸出結果為6