標籤:
1.預設參數值的函數
C++語言允許在定義函數時給其中或某些形式參數(形參)指定預設值,方法就是在相應的形參後面寫上“=預設值”,如果省略了對應位置上的實參的值,則在執行被調函數時以該形參的預設值進行運算。
本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!
2.預設參數值函數注意事項
- 預設函數一般在函式宣告中設定。如果程式中既有函式宣告又有函數定義,則定義函數時不允許再定義參數的預設值;如果程式中只有函數定義而沒有函式宣告,則預設參數才可以出現在函數定義中;
- 預設參數的順序。如果一個函數中有多個預設參數,則參數分布中預設參數應從右至左逐個定義。也就是說,如果你要給預設值的這個形參右邊還有沒有給預設值的形參,那麼,這樣定義是錯誤的。如:
void func( int a=1, float b, long c=20 ); //錯誤void func( int a, float b=2, long c=30 ); //正確
例題:定義、測試重載函數。
#include<iostream>using namespace std;int sum(int i,int j=10); //有函式宣告int sum(int i,int j){ return i+j;}void print(int i, int j, int sum=0) //無函式宣告{ cout << "i:" << i << endl; cout << "j:" << j << endl; cout << "sum:" << sum << endl;}int main(){ int a=3; int b=7; cout << "sum(a):" << sum(a) << endl; cout << "sum(a,b):" << sum(a,b) << endl; cout << "print(a,b):" << endl; print(a,b); cout << "print(a,b,sum(a,b)):" << endl; print(a,b,sum(a,b)); return 0;}//菜鳥,求大家批評指教,代碼編寫習慣和規範等等!!!謝謝!!!
本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!
C++預設參數值函數