宣告乙個函式時,可以給它的引數指定乙個預設的值,這樣以後呼叫該函式的時候如果不寫出每個引數的值就會使用它的預設值。給函式指定預設引數需要注意以下幾點:
預設引數需要從右往左指定,因為如果不是這樣,編譯器不知道你提供的引數是否覆蓋到預設引數(你也說不清吧);
只能在定義或宣告時指出預設引數,同時指定會報錯。如果函式有宣告就會以宣告的為準,定義時指出的預設引數就會無效,所以最好在宣告時指定。
函式過載時需要特別注意是否會與帶有預設引數的函式衝突。
#
include
using namespace std;
// void func(int a = 1, int b = 2, int c); // 錯誤,如果呼叫func(1)是給a還是c傳參?懵吧
void
func
(int a,
int b =2,
int c =3)
;int
main()
void
func
(int a,
int b,
int c)
/*輸出結果:
a=1 b=2 c=3
a=2 b=12 c=3
a=2 b=12 c=1
*/
c 預設引數函式注意事項
再有預設引數的函式中,一般我們都把預設引數放在宣告處而不是定義處。如果宣告和定義都有預設引數,編譯器將會報錯。呼叫含有預設實參的函式時,我們可以包含引數,也可以省略。有預設引數的函式,我們可以不帶引數呼叫 所以,在類裡面特別要注意,建構函式如果沒有引數,此時又存在有所有引數都有預設引數的建構函式,也...
python 預設引數使用的注意事項
import time deffun t time.time print t fun fun 以下是輸出結果 1525179319.4658368 1525179319.4658368我們所期望的是當我們多次掉用fun 的時候能夠列印出不同的時間,可是實際的情況卻是每次所列印的值都是一樣的.在看下面...
python 預設引數注意事項
必須保證帶有預設值的預設引數在引數列表末尾 所以,以下定義是錯誤的!def print info name,gender true,title 如果有多個預設引數,需要指定引數名,這樣直譯器才能夠知道引數的對應關係!def print info name,title gender true para...