在有多個形參的函數(shù)里傳一個參數(shù),同時還有函數(shù)承載怎么辦?(直接上代碼)
要是這樣子呢: int add(int a, int b = 2); int add(int a, int b = 2,, int c = 3); int add(int a, int b){ return a+b; } int add(int a, int b, int c){ return a + b + c; } void main() { int i = 1; add(i); } //既然可以只傳一個實參,那么現(xiàn)在到底會調(diào)用哪個函數(shù)?
2017-03-02
挺佩服你的細(xì)心,如果這樣寫的函數(shù)重載,編譯器由于 函數(shù)的二義性 編譯器自己也SB了,不知道選哪個函數(shù)重載好,就會出現(xiàn)類似的編譯錯誤 “error C2668: 'add' : ambiguous call to overloaded function”;
2017-03-02
這種情況程序會報錯,有3個int類型形參的函數(shù)已經(jīng)包括2個的情況了,你可以只寫后面的那種情況,把c默認(rèn)等于0就好了。