當函式過載碰上預設引數(C )

2021-07-24 16:56:19 字數 391 閱讀 3430

int fun(int a,int b=0,int c=0)

int fun(int a,int b=0)

int fun(int a)

#includeusing namespace std;

int main(){

int a=1,b=2,c=0;

c=fun(a);

cout<<"c="《上面這串**中,定義了三個fun()過載函式,其中兩個給了預設引數,那麼在主函式中呼叫時會出現什麼情況呢?

執行結果:

error: ' fun ' : ambiguous call to overloaded fun

意思是:有歧義的fun函式呼叫

說明當發生歧義時,是無法通過編譯的,程式設計時注意不能寫有歧義的**

C 函式過載, 預設引數

在我們的自然語言當中,乙個詞在不同的情景之下可能會有多重不同的含義,但是我們可以通過合理地判斷來確定該詞的真正含義,這種情況,我們可以說該詞被 過載 了.關於函式過載的概念 函式過載其實就是函式的一種特殊的情況,在我們的c 中允許在同一作用域當中宣告幾個功能類似的同名函式,但是這個同名函式的形參列表...

C 預設引數 函式過載

預設引數 預設引數是宣告或定義函式時為函式的引數指定乙個預設值。在呼叫該函式時,如果沒有指定實參則採用該預設值,否則使用指定的實參。例void testfunc int a 0 intmain 預設引數分類 1.全預設引數 void testfunc int a 10,int b 20,int c ...

c 函式過載和預設引數

函式過載 是c 語言物件導向的特點 多型的一種表現形式 又稱為靜多型 過載的規則 1 函式名相同。2 引數個數不同,引數型別不同,引數順序不同,均可構成過載。3 僅返回值型別不同則不可以構成過載。void func int a ok void func char a ok void func int...