**:[url]
在c++中,往往需要給某些函式的引數指定預設的值,其實這樣的思想並不難理解,這裡只是想說這樣的函式應該如何宣告和定義。
比如說希望給函式print(int value, int base)的引數base指定乙個預設的引數值10,那麼在.h檔案中宣告時,應該宣告為print(int value, int base = 10);在.cpp檔案中進行定義的時候,函式的形式就該寫為print(int value, int base)了,因為編譯器是根據函式原型宣告確定函式呼叫是否合法的,所以應該在宣告時指定預設引數值。
還有一點應該注意的是,帶有預設值的引數應該放在參數列的右邊,所以下面帶預設值的函式宣告就是錯誤的:void f(int a, int b = 1, int c, int d = 2)。
還有一點大家可能不會注意到的,不過幾乎也是很少用的,就是在不同的原始檔中,可以對函式的引數指定不同的預設值,在同一原始檔中,只能對函式的某個引數指定乙個預設值.
帶引數預設值的函式
函式有乙個或多個的引數有預設值 如float area float r 3.5 int sum int a,int b 5,int c 10 int fun int a,int b,int c 9 int fun int a,int b,int c int fun int a,int b,int c...
C 函式帶預設值的幾種情形
c 支援函式引數帶預設值。這裡所謂的預設值,指的是在呼叫函式時,可以不指定某些引數,編譯器會自動把預設值傳遞到函式呼叫中。指定預設值的引數必須位於形參列表最右端,從右往左。否則會出現二義性,編譯器無法處理。預設值可以在函式宣告或函式定義中設定,只要保證不出現引數重定義即可。class cdiagcl...
C 形參帶預設值的函式
include intsum int a,int b intmain sum函式的定義可以有以下幾種 int sum int a 10,int b 20 sum int sum int a,int b 20 sum a 但是int sum int a,int b 20 不可以編譯通過,原因是函式壓棧...