日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C和C++的区别 04.函数重载

發布時間:2025/5/22 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C和C++的区别 04.函数重载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

函數重載(Overload):用同一函數名定義不同的函數,當函數名和不同參數搭配時函數的意義不同。

也就是說,函數重載就是,名字一樣,參數不同。參數不同有三種:個數不同、類型不同、順序不同。形參的名字和返回值相不相同無所謂。

來看看編譯器調用重載函數的準則:(看不懂或者覺得暈可以不看)

  • 將所有同名函數作為候選者
  • 嘗試尋找可行的候選函數
  • 精確匹配實參
  • 通過默認參數能夠匹配實參
  • 通過默認類型轉換匹配實參
  • 匹配失敗
  • 最終尋找到的可行候選函數不唯一,則出現二義性,編譯失敗。
  • 無法匹配所有候選者,函數未定義,編譯失敗。

函數重載的注意事項:

  • 重載函數在本質上是相互獨立的不同函數(靜態鏈編)。
  • 重載函數的函數類型是不同的。
  • 函數重載是由函數名和參數列表決定的。
#include "iostream" #include <cstdio> using namespace std;void myprintf(int a) {printf("a:%d\n ", a ); } void myprintf(double a)//類型不同 {printf("a:%f\n ", a ); }void myprintf(char *p, int b)//個數和位置不同 {printf("p:%s, b:%d", p, b); }void myprintf(int b, char *p)//個數不同 {printf("b:%d, p:%s", b, p); }//函數返回類型不是函數重載的判斷標準 //這里會編譯出錯 int myprintf(int a) {printf("a:%d\n", a); }//當函數重載遇上 函數默認參數 int myprintf(int a, int b, int c=0) {printf("a:%d, b:%d c:%d \n", a, b, c);return a; }int main() {int a = 1;myprintf(a); //調用void myprintf(int a)//myprintf(1,2); //二義性,無法判斷是void myprintf(int a, int b)還是int myprintf(int a, int b, int c=0) ,調用失敗。myprintf(1,2,3);//可以區分return 0; }

轉載于:https://my.oschina.net/HappyTeemo/blog/1558437

總結

以上是生活随笔為你收集整理的C和C++的区别 04.函数重载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。