C 函式過載小筆記

2021-10-02 19:37:38 字數 1046 閱讀 9512

1.函式過載的引數不匹配問題

void

print

(double a,

int b)

intmain()

當呼叫函式的引數不與任何原型匹配時,並不會自動停止使用過載的函式,c++會嘗試強制轉換進行匹配。像上面的例子中,c++會將main中的a轉換成進行double型別匹配。

void

print

(double a,

int b)

void

print

(float a,

int b)

如果像上面的例子一樣有兩個可以匹配的過載函式,那麼c++會不會進行匹配,並將其視為錯誤。

2.函式過載的引數為引用的問題

void

cube

(double

&a)void

cube

(double a)

上面的例子,它們的引數看上去是不同的,乙個是值傳遞,乙個是引用傳遞,但是編譯器在檢查函式特徵標時,會將型別引用和型別視作同乙個特徵標。

3.匹配函式時,const的問題

void

dribble

(char

*b);

void

dribble

(const

char

*b);

void

dabble

(char

*b);

void

drivel

(const

char

*b);

intmain()

dribble函式有兩個原型,乙個適用於const指標,另乙個適用於常規指標,編譯器會通過引數是否為const進行匹配。而dabble只適用於常規指標,當傳入的引數為const指標時,將const轉化為非const是非法的,所以dabble(p1)不通過。反之是合法的。

C 學習筆記 函式過載

c 函式過載詳解 我們在開瓶瓶罐罐的時候,經常會遭遇因各種瓶口規格不同而找不到合適的工具的尷尬。所以有時候就為了開個瓶,家裡要備多種規格的開瓶器。同樣是開個瓶子嘛,何必這麼麻煩?於是有人發明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕鬆開啟。然而開瓶器的問題也會發生到程式設計中。比如我們...

C 學習筆記 函式過載

1 什麼是函式過載 c 允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表 引數個數 型別 順序 必須不同,常用來處理實現功能類似資料型別不同的問題。int add int a,int b double add double a,double b int main 注意 main函...

C 筆記函式過載函式模板

include using namespace std class student void display 定義公用函式display 在函式的後面加上不加 結果都是一樣的一句話的結束符號 不影響函式的執行在c 中也允許函式的過載,即函式的一物多。include include using nam...