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...