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