c++函數(shù)

函數(shù)重載

語法:函數(shù)名相同,函數(shù)參數(shù)不同

實現(xiàn)函數(shù)重載的條件

  • 同一個作用域
  • 參數(shù)個數(shù)不同
  • 參數(shù)類型不同
  • 參數(shù)順序不同
c中函數(shù)都是全局作用域,函數(shù)名不能相同。

c++中函數(shù)名可以相同

函數(shù)的返回值不可以作為函數(shù)重載條件,const可以做為重載條件
void func(int a,int b=10){};

void func(int a);
當函數(shù)重載碰到了函數(shù)默認參數(shù),要注意避免二義性
func(10);編譯器不知道調用那個

函數(shù)重載實現(xiàn)原理

編譯器為了實現(xiàn)函數(shù)重載,也是默認為我們做了一些幕后的工作,編譯器用不同的參數(shù)類型來修飾不同的函數(shù)名,比如void func();

編譯器可能會將函數(shù)名稱修飾成_func,當編譯器碰到void func(int x),編譯器可能將函數(shù)名修飾為_func_int,不同的編譯器有不同的命名方法,沒有一天統(tǒng)一的標準

函數(shù)默認參數(shù)

參數(shù)可以有默認值

void func(int a=10);//a默認值為10

如果有一個位置有了默認值,那么從這個位置開始,從左往右都必須要有默認值

void func(int a,int b=10,int c=20);//如果b有默認參數(shù),后邊的都要有

函數(shù)聲明和實現(xiàn),只能有一個有默認值

void func(int a,int b=10,int c=20);//聲明和實現(xiàn)的默認參數(shù)只寫一次
void func(int a,int b,int c)
{

};

函數(shù)占位參數(shù)

void func(int)    int就是占位符
占位參數(shù) 調用時候必須要提供這個參數(shù)
占位參數(shù)也可以有默認值
c語言中沒有默認參數(shù)和占位參數(shù)
占位參數(shù)沒有什么大用途,只有重載++符號才有一點點用
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容