C++學習筆記--預設引數和函式過載不可以同時存在
阿新 • • 發佈:2019-02-06
void print(int a)
{
printf("void print(int a)\n");
}
void print(int a, int b)
{
printf("void print(int a, int b)\n");
}
int main()
{
print(2);
print(2, 3);
}
以上程式碼是函式過載,可以輸出正確的結果;下面的程式碼是使用預設引數,同樣可以輸出正確結果。
void print(int a, int b = 10)
{
printf("void print(int a, int b)\n");
}
int main()
{
print(2);
print(2, 3);
}
如果,將程式碼寫成預設引數和函式過載同時存在的情況,則會報錯,因為計算機並不清楚是選擇預設引數還是函式過載。void print(int a)
{
printf("void print(int a)\n");
}
void print(int a, int b = 10)
{
printf("void print(int a, int b)\n");
}
int main()
{
print(2);
}