函式名過載:給多個不同的函式(引數的型別或個數有所不同)取相同的名字
注:如果兩個函式的引數型別和個數都相同,知識他們的返回值型別不同,不能對其進行函式名過載,因為函式呼叫時不能區分呼叫的是哪個函式。
(和函式名過載沒有太大關係:函式名可轉換成函式函式指標)
過載函式的繫結
1. 精確匹配
蘿蔔放進蘿蔔筐,白菜放進白菜筐
2. 提公升匹配
精確匹配不到就進行提公升匹配
1)按整型提公升規則
2)把float提公升到double,把double提公升到long double
3. 標準轉換匹配
提公升匹配不到就進行標準轉換匹配
標準轉換規則:
1)任何算術型別可以互相轉換
2)列舉型別可以轉換成任何算術型別
3)零可以轉換成任何算術型別或指標型別
4)任何型別的指標可以轉換成void *
5)派生類指標可以轉換成基類指標
6)每個標準轉換都是平等的(也就是1到5的優先順序相同)
4. 自定義轉換匹配
1)強制型別轉換
2)增加額外的過載
對於含有兩個或兩個以上引數的過載函式繫結問題,原則是先繫結最佳匹配(也就是引數對應個數越多)。
C 函式名過載
c語言沒有函式名過載,c 有函式名過載。函式名相同,函式引數列表不同,稱為函式名過載。函式引數列表不同包括 1 引數個數不同 2 引數型別不同 include stdio.h double find max double a,double b,double c else if max c retur...
C 函式名字的隱藏 重寫 過載 重定義
概要 c 中經常出現函式名字一樣,但引數列表或返回值不同的函式,要搞清楚函式的正確呼叫關係,需理清三個概念 重寫 override 過載 overload 重定義 redefine 一 三個基本概念 1 重定義 redefine 派生類對基類的成員函式重新定義,即派生類定義了某個函式,該函式的名字與...
C 函式名前的
函式名前的 可以讓你用 函式名 的方式獲取返回值的位址。這種方法可不等同於新建立乙個變數,用這個變數接收返回值,然後再用 變數的方式獲取位址 我們都知道新建立的變數的記憶體位址是重新開闢的記憶體,和函式的返回值位址沒有任何關係 test console.cpp 定義控制台應用程式的入口點。inclu...