函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。
void func(int i = 1, float f = 2.0f, double d = 3.0)int main(void
)
引數的值也可以是表示式,這樣,表示式將在函式被呼叫的時候求值,比如下面的func函式,第二個引數值是通過函式呼叫得到的,每次呼叫func函式時,該函式都會呼叫getvalue來獲取b的值。
classtest
int func(int a, int b =getvalue())
} ;
下面兩種情況都可以
void func(int i, float f = 2.0f, double d = 3.0) ;void func(int i, float f, double d = 3.0) ;
但是這樣就不可以
void func(int i, float f = 2.0f, double d) ;
預設引數的連續效能保證編譯器正確的匹配引數。所以可以下這樣乙個結論,如果乙個函式含有預設引數,那麼它的最後乙個引數一定是預設引數。
通常我們都將預設引數放在函式宣告中,因為如果放在函式定義中,那麼將只能在函式定義所在地檔案中呼叫該函式。(為什麼呢?)
.h檔案
classtestclass
;
.cpp檔案
#include "testclass.h
"void testclass::func(int i = 1, float f = 2.0f, double d = 3.0
)
像上面這樣,只能夠在testclass.cpp中呼叫func函式。豈不是很痛苦?
比如下面兩個過載函式func,乙個只接受乙個引數,而另乙個接受兩個引數,包括乙個預設引數。
classtest
int func(int a, int b = 1
)
} ;
如果像下面這樣呼叫函式
int main(void)
則編譯器就不知道選擇哪個函式,這就造成了混淆。
C 預設引數
一 預設引數 在c 中,可以為引數指定預設值。在函式呼叫時沒有指定與形參相對應的實參時,就自動使用預設引數。預設引數的語法與使用 1 在函式宣告或定義時,直接對引數賦值。這就是預設引數 2 在函式呼叫時,省略部分或全部引數。這時可以用預設引數來代替。注意 1 預設引數只可在函式宣告中設定一次。只有在...
C 預設引數
函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。void func int i 1,float f 2.0f,double d 3.0 int main void 引...
C 預設引數
概念 在函式宣告或定義的時候給形參乙個預設的引數。這樣在呼叫該函式,如果沒有給實參,函式的這個形參就預設為這個值。使用規則 1 預設值必須從右往左給值 2 預設值必須為常量或全域性變數 const static 普通的 全域性變數 也可以作為預設引數 3 預設引數只能出現在宣告或者定義的一處 4 不...