1. 程式人生 > >C++學習筆記--預設引數和函式過載不可以同時存在

C++學習筆記--預設引數和函式過載不可以同時存在

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);

}