22)函数重载
1)定義:函數重載:規則:
(1)他們的作用域必須是一樣的
(2)函數的名字一樣
(3)參數個數不同,參數的類型不同,參數的順序不一樣,均可以構成重載
(4)返回值類型不同則不能構成重載
?
1 #include<iostream> 2 //如下面的兩個函數,不是蟲重載,而且有嚴重的錯誤,不可以這么寫 3 int fun(int a) 4 { 5 printf("dkas"); 6 return 2; 7 } 8 char fun(int a) 9 { 10 printf("11111111"); 11 return 'a'; 12 } 13 int main() 14 { 15 fun(10,20); 16 printf("\n"); 17 fun(10,'a'); 18 19 return 0; 20 21 22 }?
2)注意:如果要是函數重載的話,就不要默認參數,為了避免調用時出現函數沖突
3)函數重載涉及的函數調用規則:
?如果能嚴格匹配,就直接調用這個嚴格匹配的,
?如果沒有完全匹配的,就調用隱式轉換,
?如果還是匹配不到,則調用失敗。
4)
?
5)C++重載的底層實現?
其實就是,在我們的編譯器的 ?表格里面,函數的名字雖然我們看上去是一樣的,但是實際上在表格中存的是不一樣的。
?
5)要想函數重載,就別帶有默認參數,要想帶默認參數,就別函數重載
? (因為,當你少寫一個參數時,系統不知道,你是函數重載,還是嗲用帶有默認參數的函數)
?
轉載于:https://www.cnblogs.com/xiaoyoucai/p/8179231.html
總結
- 上一篇: freemark 时间比较
- 下一篇: 用:after伪类写背景