1.有默認參數時,實際上就可以認爲該函數可以代表幾種函數。這幾種函數可以用下例說明:
#include <iostream>
#include <string>
using namespace std;
int func(int i) { cout << 1 << endl; return 0; }
int func(int i, int j = 0) { cout << 2 << endl; return 0; }
int func(int i, int j = 0, int k = 0) { cout << 3 << endl; return 0; }
int main()
{
func(1);//錯誤,有多個重載函數與參數列表匹配
func(1, 2);//錯誤,有多個重載函數與參數列表匹配
return 0;
}
這說明第三個函數已經包含了前倆函數。
2.對於沒有默認參數情況。一:選擇可行函數,滿足形參與實參個數相同,每個對應的形參與實參隱式轉換。二:實行最佳匹配。