四、c++定義和宣告設定預設引數
阿新 • • 發佈:2019-02-11
#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