預設引數與函式過載

2021-10-10 17:25:51 字數 642 閱讀 8414

一.預設引數:

形參a和b都帶有預設值

使用者用掉該函式時,沒傳參,就用預設值。傳參就用所傳值。

1,分類:

1.全預設引數:每個引數都帶有預設值

void t(int a=1,int b=2,int c=3)

int t() 不能過載,引數列表相同,不能過載。

注意:如果兩個函式僅僅是返回型別不同,則不能構過載

2.引數列表不同體現:

1.引數個數不同。

2.引數列表不同。

3.引數型別次序不同

void t()

void t(int a )

void t(char c)

void t(int a ,char c)

void t(char, int a )

3.函式過載的呼叫原理:

編譯器在編譯階段,會對函式實參型別進行推演,根據推演的實際結果找型別

匹配的函式進行呼叫。有匹配型別,直接呼叫。如果沒有,則會隱式型別轉換,

轉後有對應的就呼叫,沒有對應就報錯。

e.g.

int add(int lefe ,int right)

double add(double lefe ,double right)

int main()

預設引數與函式過載

預設引數是 宣告或定義函式時為函式的 引數指定乙個預設值。在呼叫該函式時,如果沒有指定實參則採用該預設值,否則使用指定的實參。void testfunc int a 0 注意 如果生命與定義位置同時出現,恰巧兩個位置提供的值不同,那編譯器就無法確定到底該用那個預設值。3.預設值必須是常量或者全域性變...

c 函式過載與預設引數

函式過載 是指同一作用域內,一組具有相同函式名,不同引數列表的函式,構成過載關係,這組名稱相同的函式成為過載函式。過載函式通常完成的功能相近,這樣做的好處是減少了函式名的數量,提高了程式的可讀性。注意 過載與函式的返回型別無關,引數相同僅返回值不同的兩個函式不構成過載關係,與形參名字無關,只與引數的...

預設引數 函式過載

預設引數 帶有初始值的引數 注 1.非全預設引數,引數的預設值賦值要從最後邊從右向左依次進行 eg int sum int a,int b 1,int c 2 2.實參的匹配是從左向右進行的 eg int sum int a,int b 1,int c 2 sum 10,20 10對應a,20對應b...