函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。
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 中增加了函式的預設引數這一功能。在c 中,可以為函式宣告的時候為函式提供乙個預設值,當呼叫該函式的時候,如果沒有函式引數的值,則會使用預設值。例如下面的 include int func int x 0 函式的宣告 int main int argc,char ar int func int ...
C (帶有預設引數的函式引數)預設函式引數
預設引數?在c 中,允許實參的個數與形參的個數不同。在宣告函式原型時,為乙個或者多個形參指定預設值,以後呼叫這個函式時,若省略某乙個實參,c 則自動的以預設值作為相應引數的值。實列說明 includeusing namespace std int add int x 4,int y 7 int ma...
c 中函式的預設引數 5
一.預設引數定義與用法 其實也是為了方便,預設引數 在宣告某個函式時將它的引數也初始化,那麼這些引數就是該函式的預設引數,又叫預設引數,看 include using namespace std void fn int a 4 int main void fn int a 總結一下 怎麼說呢,c 中...